我有一个列表列表,list = [(1,2,5), (2,8,7),(3,6,9)]我想找到第三列的最大数量,所以我试过:
zipped = zip(*list)
print max(zipped[2])
Run Code Online (Sandbox Code Playgroud)
但它并没有显示出最大的数字.谁知道为什么和解决方案?
适用于所有较新的蟒蛇:
>>> li = [(1,2,5), (2,8,7),(3,6,9)]
>>> max(l[2] for l in li)
9
Run Code Online (Sandbox Code Playgroud)
如果你有文字:
>>> li = [('1','2','5'), ('2','8','7'),('3','6','9')]
>>> max(int(l[2]) for l in li)
9
Run Code Online (Sandbox Code Playgroud)
即使源是迭代器/生成器也可以工作.这是在Py3.3上,其中zip返回一个迭代器:
>>> gli=(e for e in li)
>>> max(int(l[2]) for l in gli)
9
>>> max(int(l[2]) for l in zip(*li))
9
Run Code Online (Sandbox Code Playgroud)