私は以下によって作成された要素のリストを持っています:
if x > 2:
pricePerUnit.append(name)
pricePerUnit.append(price/quantity)
bestValue = list.count(min(pricePerUnit))
値を取得すると同時に、各値の前にある要素を取得するにはどうすればよいですか?
私は以下によって作成された要素のリストを持っています:
if x > 2:
pricePerUnit.append(name)
pricePerUnit.append(price/quantity)
bestValue = list.count(min(pricePerUnit))
値を取得すると同時に、各値の前にある要素を取得するにはどうすればよいですか?
最善の方法は、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)