在 Python (3.8) 中,我有 15 个相同长度的浮点数列表。
对于列表的每个索引,我想找到列表中的最大值,找到相应的列表,并将信息添加到新列表中。因此,我的新列表将为我提供每个索引的具有最大值的列表的信息(我不关心实际的最大值,只需要知道每个索引处包含该最大值的列表)。
现在我有以下代码来执行此操作(maxList 是我包含此信息的列表)。它有效,但看起来非常乏味,我想有一种更好、更紧凑/高效的方法来做到这一点。
myMax=0
maxList=0
for i in range(len(List1)):
myMax=max(List1[i])
maxList=1
if(max(List2[i]) > max(List1[i])):
myMax=max(List2[i])
maxList=2
if(max(List3[i]) > max(List2[i])):
myMax=max(List3[i])
maxList=3
....
我的问题是有没有更好的方法来实现相同的结果而不重复 15 次相同的 if 循环?
拥有变量
List1
、List2
、List3
(大概是等等)绝对是一个复杂的问题。您应该有一个数组并对其索引进行循环。那么剩下的应该是相当微不足道的。
floats = [
[1.0] * 7,
[2.0] * 7,
[3.0] * 7,
[4.0] * 7,
[42.17] * 7,
[6.0] * 7,
[0.1, 12.2, 27.3, 18.4, 496.5, 7.6, 1.7]]
maxfloats = [max(floats[x][i] for x in range(len(floats))) for i in range(len(floats[0]))]
print(maxfloats)