0

私は以下によって作成された要素のリストを持っています:

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

値を取得すると同時に、各値の前にある要素を取得するにはどうすればよいですか?

4

1 に答える 1

1

最善の方法は、pricePerUnitリストを別の方法で構成し、両方の値をタプルとして一緒に保存することです。

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

このように、最も価値のあるアイテムを見つけると、名前も見つかります。リスト内の最小値を見つけるには、 にkey引数を指定する必要がありますmin。このkey関数は、最小値を見つけるために比較する値を抽出する必要があります。この場合、最小値はタプルの 1 番目の項目です (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)
于 2013-05-10T02:11:06.420 に答える