擅长:python、mysql、java
<p>虽然您可以像@Coldspeed所说的那样使用<code>max()</code>和<code>key</code>,但从长远来看,我认为一个更好的解决方案是为您的<code>Point</code>类重载小于和大于运算符。这样你只需要实现一次逻辑。如果你要改变逻辑的话,你也要改变它:</p>
<pre><code>>>> class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
def __gt__(self, point):
return self.x > point.x or self.y > point.y
def __lt__(self, point):
return self.x < point.x or self.y < point.y
>>> points = [Point(1,3), Point(5,2), Point(8,0)]
>>> point = max(points)
>>> point.x
8
>>>
</code></pre>
<p>如果要获得最大值,可以使用一个简单的三元条件:</p>
^{pr2}$