Python 从数组中选择最大值
如何获取列表中具有最大长度的子列表 我有以下代码:Python 从数组中选择最大值,python,arrays,list,max,Python,Arrays,List,Max,如何获取列表中具有最大长度的子列表 我有以下代码: 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中获得长度最长的bg=2 我曾经 y = [b for b in a if max (g)] TypeError:“int”
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()
需要一个iterable,因此会出现错误。但是,即使将g
固定为列表[0,2,1]
你在列表理解中的守卫也不会真正做任何事情,因为它总是计算为True
,因为它相当于编写if 2
但您可以使用max()
重写代码,使用键来计算差异:
>>> c = [1,2]
>>> a = [[1,2], [3,4], [3,2]]
>>> max(a, key=lambda x: len(set(x)-set(c)))
[3, 4]
你可以试试这个
c = [1,2]
a = [[1,2], [3,4], [3,2]]
k=max(max(map(lambda x:set(c)-set(x),a)))
print k if k else 0