如何获取列表中最大长度的子列表?
我有这个代码:
c = [1,2]
a = [[1,2], [3,4], [3,2]]
for b in a:
g = len(list(set(b) - set(c))) *#list of difference items between c and b in a*
print(g)
结果
0
2
1
我需要在 a
中获取最长长度的 b
>> g = 2
我用过
y = [b for b in a if max (g)]
TypeError: 'int' 对象不可迭代
谢谢,
最佳答案
max(g)
没有多大意义,因为 g
只是最后一个 int
值(1
) 在上一个循环中。 max()
需要一个可迭代的 - 因此你的错误。但是即使将 g
固定为列表 [0, 2, 1]
你在列表理解中的守卫也不会真正做任何事情,因为它总是评估为 True
因为它等同于编写 if 2
。
但是你可以用 max()
重写你的代码,使用 key
来计算差值:
>>> c = [1,2]
>>> a = [[1,2], [3,4], [3,2]]
>>> max(a, key=lambda x: len(set(x)-set(c)))
[3, 4]
关于python - 从数组python中选择最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43486765/