如何从列表的索引值中减去最小值?

时间:2019-04-23 09:07:12

标签: python

所以我现在有一个list,还有一个tuple,我想减去列表/元组中每个值的计算最小值。我使用enumerate()设置了一个计数器,但是我不确定这是否是最好的方法。我所知道的是,我无法直接从列表中减去列表。因此,任何帮助都会很棒,对不起,我是新手。

我已经尝试map()将函数应用于每个可迭代对象

map(set(tuple) - set(minimum))

original_list = [['str1',2.33,7.46, 0.499],['str2', 45.55,4.77,6.22]]
tuple = [1, ('str1', 7.46,9.37,9.54,9.03,10.7)]
[2, ('str2', 2.46,9.37,9.54,9.03,10.7)]
min():
  columns = list(zip(*file))
  minimum = [min(list(x for x in column[1:] if x is not None)) for column in 
  columns

  # minimum = [7.46, 2.46]

从函数生成最小值的地方

a = tuple - minimum

理论上,在最小列表中,x1,x2,x3需要减去最小值7.46,然后2,x1,x2,x3需要减去2.46或min2。

换句话说,有没有办法我可以做这样的事情,但可以有另一个列表?

for i in range(len(tuple)):
  tuple[i] -= corresponding minimum value from minimum()

1 个答案:

答案 0 :(得分:0)

您可以使用列表理解:

final String REG_PATTERN_VALID_DECIMAL_NUMBER = "-?\\d+(?:\\.\\d+)?";

但是,类型的东西使它有点难看。也许,如果数据总是看起来像[“ str”,float,float,float ...],则可以执行以下操作:

data = ('str1', 7.46,9.37,9.54,9.03,10.7)
l = [x - min(data[1:]) if type(x) == float else x for x in data] #substract minimum from x if x is a float, else leave x as it is