2024-10-01 13:37:49 发布
网友
我是Python新手,我非常喜欢min函数。在
min
>>>min([1,3,15]) 0
但是,如果我有一个实例列表,并且它们都有一个名为number的变量,会怎么样呢?在
number
我真的需要
lowestI = iList[0].number for i in iList: if lowestI > iList[i].number: lowestI = iList[i].number print lowestI
我不能用一种很好的Python式的方式使用min吗?在
生成器语法:
min(i.number for i in iList)
key函数:
key
from operator import attrgetter min( iList, key = attrgetter( "number" ) )
相同的key参数也适用于sort,用于pythonical地实现decorate sort undecorate习语。在
sort
OOP方法是实现__lt__:
__lt__
class Instance(): def __init__(self, number): self.number = number def __lt__(self, other): return self.number < other.number # now min(iList) just works
另一种方法是
imin = min(iList, key=lambda x:x.number)
像sort, min, max这样的函数都采用key参数。您给出一个函数,该函数接受一个项,并在比较该项时返回该项的任何值。在
sort, min, max
生成器语法:
^{pr2}$key
函数:相同的
key
参数也适用于sort
,用于pythonical地实现decorate sort undecorate习语。在OOP方法是实现
__lt__
:另一种方法是
imin = min(iList, key=lambda x:x.number)
像
sort, min, max
这样的函数都采用key
参数。您给出一个函数,该函数接受一个项,并在比较该项时返回该项的任何值。在相关问题 更多 >
编程相关推荐