Python 用命名元组填充的列表的最大值

Python 用命名元组填充的列表的最大值,python,max,namedtuple,Python,Max,Namedtuple,我创建了一个充满命名元组的列表: from collections import namedtuple Point = namedtuple('Point', 'x y') a = Point(5,4) b = Point(8,3) tab = [a,b] print tab >>[Point(x=5, y=4), Point(x=8, y=3)] 我想要列表“选项卡”中的x值的最大值 max(tab.x) >> 8 您可以通过以下方式进行操作: print max

我创建了一个充满命名元组的列表:

from collections import namedtuple
Point = namedtuple('Point', 'x y')
a = Point(5,4)
b = Point(8,3)
tab = [a,b]

print tab
>>[Point(x=5, y=4), Point(x=8, y=3)]
我想要列表“选项卡”中的x值的最大值

max(tab.x)
>> 8

您可以通过以下方式进行操作:

print max([i.x for i in tab])
但是,这可能不是最好的方法。

尝试这样做

>>> max(tab, key=lambda k: k.x)
Point(x=8, y=3)
>>> max(tab, key=lambda k: k.x).x
8
可选键参数指定一个单参数排序函数 与用于list.sort()的类似。关键参数(如果提供)必须为 以关键字形式(例如,max(a,b,c,key=func))


打印最大值([i.x代表选项卡中的i])
请参阅另一种方法非常感谢。你能给我解释一下这个密码吗key=lambda k:k.x
lambda k:k.x
返回排序键或
key=operator.attrgetter('x')