在所有的小列表中,我必须制作一个列表,其中每个列表中的偶数最大。如果列表中有奇数,则最大值为 0。到目前为止,我的代码是:
a=[]
b=[]
c=''
d=''
e=''
for i in range (len(res)):
for j in range (len(res)):
d=res[i][j]
if (d%2 == 0):
d=d
a.append(d)
else:
d= 0
a.append(d)
c = max(a)
b.append(c)
print b
列表是[[1,2,3],[6,5,4],[5,7,9]]
,我需要获取[2,6 ,0]
但我不断得到 [2,6,6]
最佳答案
由于 max
函数接受一个可迭代对象,因此您可以使用:
>>> a = [[1,2,3],[6,5,4],[5,7,9]]
>>> [max([m for m in i if m % 2 == 0] or [0]) for i in a]
[2, 6, 0]
其中 [m for m in i if m % 2 == 0]
获取偶数列表,而 max([m for m in i if m % 2 == 0] 或 [0])
获取最大偶数(包括负数),如果不存在偶数,则获取 0。
>>> a = [[1,2,3],[6,5,4],[5,7,9,-2]]
>>> [max([m for m in i if m % 2 == 0] or [0]) for i in a]
[2, 6, -2]
关于python - 如何在列表列表中创建最大值列表(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27199832/