2013-04-30 75 views
0

我想要一个函数,我可以放在一个列表和一个指针,并让它应用指向列表中的对象的指针给我具有该指针最低值的对象。把一个指针作为一个值的方法调用[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)

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

+0

我不认为普通Python有指针。你的意思是属性? – Kevin 2013-04-30 20:23:18

回答

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

我觉得可能有一些内置的函数我错过了。我只是尝试了最小的事情,它试了一下。太感谢了! – 2013-04-30 20:26:17

相关问题