I have this list of objects which have a x and a y parameter (and some other stuff).
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>
)
I need to have the max y of this list. Though, I tried this:
print max(path.nodes, key=y)
And I get this error:
NameError: name 'y' is not defined
I am kinda new to Python and the docs give me no clue. I think I am doing wrong with the keyword because if iterate through nodes like this:
for node in path.nodes:
print node.y
I'll get the values of y. Could somebody provide me an explanation?
To get just the maximum value and not the entire object you can use a generator expression:
print max(node.y for node in path.nodes)