实例变量列表的Python最小值

2024-10-01 13:37:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,我非常喜欢min函数。在

>>>min([1,3,15])
0

但是,如果我有一个实例列表,并且它们都有一个名为number的变量,会怎么样呢?在

^{pr2}$

我真的需要

lowestI = iList[0].number
for i in iList:
    if lowestI > iList[i].number: lowestI = iList[i].number
print lowestI

我不能用一种很好的Python式的方式使用min吗?在


Tags: 实例函数innumber列表forif方式
3条回答

生成器语法:

min(i.number for i in iList)

key函数:

^{pr2}$
from operator import attrgetter
min( iList, key = attrgetter( "number" ) )

相同的key参数也适用于sort,用于pythonical地实现decorate sort undecorate习语。在

OOP方法是实现__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参数。您给出一个函数,该函数接受一个项,并在比较该项时返回该项的任何值。在

相关问题 更多 >