2013-05-10 75 views

回答

1

辦將組織你的pricePerUnit列表不同,存儲這兩個值加在一起作爲一個元組的最好的事情:

if x > 2: 
    pricePerUnit.append((name, price/quantity)) 

這樣,當您找到最佳值項,您還可以找到的名字。要找到列表中的最小值,您現在需要提供一個key參數給min。這key功能應提取值進行比較,以找出最小,在這種情況下是在元組中的第一個項目(name是在元組中的第0項):

bestValueName, bestValue = min(pricePerUnit, key=lambda ppu: ppu[1]) 

要找到所有的項目是有最好的價值,你應該找到最佳值,然後找到具有該值的所有項目:

_, bestValue = min(pricePerUnit, key=lambda ppu: ppu[1]) 
bestValueItems = filter(lambda ppu: ppu[1] == bestValue, pricePerUnit) 
+0

追加功能只需要一個arguement雖然 – user2368334 2013-05-10 02:28:41

+0

注意對額外追加調用中括號的。這使得一個元組。如果它被分解成兩個語句,如下所示:nameValueTuple =(name,price/quantity); pricePerUnit.append(nameValueTuple)'。 python文檔有更多關於元組的信息:http://docs.python.org/release/1.5.1p1/tut/tuples.html – 2013-05-10 02:52:41

+0

是否有一種方法可以在存在多個相同值的情況下進行工作? – user2368334 2013-05-10 03:16:38

相關問題