将指针作为值放在方法调用[python]中

时间:2013-04-30 20:18:12

标签: python

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

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)这样更复杂的东西。

我打算在我的程序周围的几个地方使用它。 先谢谢你,伙计们!

1 个答案:

答案 0 :(得分:4)

在我看来,您希望使用内置min功能。 min采用可迭代(例如列表)并返回最小元素。您还可以为其指定一个key函数来进行比较。

e.g:

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'))