我有一个对象列表,其中包含x和y参数(还有其他一些东西)。
path.nodes = (
<GSNode x=535.0 y=0.0 GSLINE GSSHARP>,
<GSNode x=634.0 y=0.0 GSLINE GSSHARP>,
<GSNode x=377.0 y=706.0 GSLINE GSSHARP>,
<GSNode x=279.0 y=706.0 GSLINE GSSHARP>,
<GSNode x=10.0 y=0.0 GSLINE GSSHARP>,
<GSNode x=110.0 y=0.0 GSLINE GSSHARP>,
<GSNode x=189.0 y=216.0 GSLINE GSSHARP>,
<GSNode x=458.0 y=216.0 GSLINE GSSHARP>
)
我需要找到这个列表中的最大值y。但是,我已经尝试了以下方法:
print(max(path.nodes, key=y))
我遇到了这个错误:
NameError: name 'y' is not defined
我对Python有点陌生,而且文档没有给我任何线索。我认为我在关键字上做错了,因为如果像这样遍历节点:
for node in path.nodes:
print(node.y)
我将获取y的值。 能否有人给我解释一下?
key=lambda x: x.y
的方式,就像其他人一样。但是这个才是真正可以称之为pythonic的!+1 - Niklas R