Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 搜索列表中一列的最大数字_Python_List_Max - Fatal编程技术网

Python 搜索列表中一列的最大数字

Python 搜索列表中一列的最大数字,python,list,max,Python,List,Max,我有一个列表,list=[(1,2,5),(2,8,7),(3,6,9)],我想找到第三列的最大数字,所以我尝试: zipped = zip(*list) print max(zipped[2]) 但它并没有显示最大的数字。有人知道原因和解决方案吗?在python2.7上对我有效 >>> l = [(1,2,5),(2,8,7),(3,6,9)] >>> zip(*l) [(1, 2, 3), (2, 8, 6), (5, 7, 9)] >>&g

我有一个列表,
list=[(1,2,5),(2,8,7),(3,6,9)]
,我想找到第三列的最大数字,所以我尝试:

zipped = zip(*list)
print max(zipped[2])

但它并没有显示最大的数字。有人知道原因和解决方案吗?

在python2.7上对我有效

>>> l = [(1,2,5),(2,8,7),(3,6,9)]
>>> zip(*l)
[(1, 2, 3), (2, 8, 6), (5, 7, 9)]
>>> max(zip(*l)[2])
9

另一种选择:

max(l,key=lambda x:x[2])[2]
或者如果您更喜欢
itemgetter

from operator import itemgetter
max(l,key=itemgetter(2))[2]
这可能在内存方面更有效,并且它将在python3.x上工作,
zip
不再返回
list


这里的关键是,它允许您获取最大的完整元组(最大值由第三个元素决定),然后如果需要,您只需从中提取正确的元素。

适用于所有较新的python:

>>> li = [(1,2,5), (2,8,7),(3,6,9)]
>>> max(l[2] for l in li)
9
如果您有文本:

>>> li = [('1','2','5'), ('2','8','7'),('3','6','9')]
>>> max(int(l[2]) for l in li)
9
即使源代码是迭代器/生成器,也可以使用。这是在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

它显示了什么?这是一个元组列表,需要澄清。。。不要给你的列表命名
list
,否则当你键入
list((1,2,3))
时你会感到困惑。唯一不起作用的机会是你在Py3k上,zip是一个迭代器。你不能改变这样的问题。创造another@trivial--我回滚了您的编辑。不要这样改变问题。如果你有一个新问题,问一个新问题(但先做一点研究:)也许OP使用的是Py3k,zip返回一个iterator@JBernardo--是的。我也想到了这个。。。这就是为什么我添加了我的第二个版本也适用于python3.x。对不起,我找到了原因,我的列表是一个文本列表,我给出的示例是一个数字列表…你能告诉我如何更改它吗?@triple--
map(int,iterable\u of\u string)
将返回一个新列表,其中字符串转换为整数(如果可能)哇。。。我不知道我为什么不这样写。。。(+1) ... 我可以安慰自己,它很好地允许OP获得最大的第三项的完整元组。。。但是如果你只是需要这个东西,这绝对是干净的。谢谢你的帮助,它很管用。