簡體   English   中英

在Python中,如何在元素列表中搜索值,然后在其之前獲取元素?

[英]In Python, how can I search a list of elements for a value then also take the element before it?

我有一個由以下元素創建的元素的列表:

if x > 2:
            pricePerUnit.append(name)
            pricePerUnit.append(price/quantity)
bestValue = list.count(min(pricePerUnit))

如何在獲取值的同時獲取每個值之前的元素?

最好的辦法pricePerUnit不同的方式構造pricePerUnit列表,將兩個值一起存儲為元組:

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

這樣,當您找到最有價值的商品時,也會找到名稱。 要在列表中找到最小值,您現在需要向min提供一個key參數。 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM