配列内の最小値を見つける > 0 質問する

配列内の最小値を見つける > 0 質問する

配列内の最小の正の値と、そのリスト内の位置を見つけたいと考えています。リスト内の値が重複している場合、最初のインスタンスのみが対象となります。これは、私が求めている機能を実行するものですが、0 が含まれています。

print "Position:", myArray.index(min(myArray))
print "Value:", min(myArray)

例えば、現状では、

myArray = [4, 8, 0, 1, 5]

位置: 2、値: 0

位置: 3、値: 1 を表示したい

ベストアンサー1

あなたはジェネレータ式を使用します。これにより、 が0 より大きい最小値としてmin設定されます。次に、 を使用して、この値が最初に出現するインデックスを検索します。malist.index

a = [4, 8, 0, 1, 5]

m = min(i for i in a if i > 0)

print("Position:", a.index(m))
print("Value:", m)
# Position: 3
# Value: 1

おすすめ記事