0

我正在尝试创建一个函数,我可以在其中放入一个列表和一个指针,并让它将该指针应用于列表中的对象,从而为我提供该指针值最低的对象。

def GetLowest(ListObject,Value):

    ObjectX=ListObject[0]

    for i in ListObject:

        if i.Value<=ObjectX.Value:

            ObjectX=i

    return ObjectX

然后我可以做一些事情(假设我有这些对象的列表)GetLowest(Rectangles,Area)并让它检查每个矩形的面积。或者可能是更复杂的东西,比如GetLowest(Backpacks,Wearer.ShoeSize).

我打算在我的程序周围的几个地方使用它。提前谢谢各位!

4

1 回答 1

4

在我看来,您想使用内置min函数。 min接受一个可迭代的(例如一个列表)并返回最小元素。你也可以给它一个key被调用来进行比较的函数。

例如:

smallest_rectangle = min(list_of_rectangles,key=lambda rect:rect.area)
backpack_with_small_shoes = min(backpacks,key=lambda b: b.wearer.shoe_size)

模块中的各种功能在operator这里也非常有用。例如,上面的第一个语句可以写成:

from operator import attrgetter
smallest_rectangle = min(list_of_rectangles,key=attrgetter('area'))
于 2013-04-30T20:21:17.613 回答