2013-04-30 70 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

相關問題