私はリスト[配列]を持っていますが、これはいつでも最大15個のエントリを持ちます。これらのエントリのいずれかがゼロに等しいかどうかをテストし、いずれかのエントリがゼロに等しい場合は何かを実行する必要があります。Python 3リスト内の項目の範囲をテストする
if inventory[0] == 0 or inventory[1] == 0 or inventory[2] == 0...
など、効率的なやり方は何ですか?
私はリスト[配列]を持っていますが、これはいつでも最大15個のエントリを持ちます。これらのエントリのいずれかがゼロに等しいかどうかをテストし、いずれかのエントリがゼロに等しい場合は何かを実行する必要があります。Python 3リスト内の項目の範囲をテストする
if inventory[0] == 0 or inventory[1] == 0 or inventory[2] == 0...
など、効率的なやり方は何ですか?
Pythonの組み込みのany()
関数がこれに最適です。引数の中でiterableをとり、いずれかの要素が真(偽でない)ならばTrue
を返します。
if any(item == 0 for item in inventory):
# do something
すべての要素に該当する場合、True
を返しますall()
と呼ばれる同様の機能もあります。
の、私はあなたを考えて、inventory
は数値のみが含まれていることを想定しおそらくこれを行うことができます:
if 0 in inventory:
# do something
このタイプの薄いgの場合、any
関数(docs)を使用できます。
if any([item == 0 for item in inventory]):
# do something
「インベントリでif0」の場合+1。時には簡単なことを忘れてしまうこともあります:) –
これを試してみてください:
inventory=[1,2,3,4,0]
if 0 in inventory:
print "There is 0 in the list"
出力を: リストに0がある
「これらのエントリのいずれかがゼロに等しい場合、いずれか1つのエントリがに等しい場合、テストゼロ、何かをする。混乱しています。 「これらのエントリのいずれか」と「1つのエントリ」の違いは何ですか?何か - 何か一般的なもの、または特に1/some/all zeroのエントリを持つもので、リストのゼロエントリの位置(インデックス)を知る必要がありますか? –