2017-05-17 9 views
0

条件の配列を、特にPythonで渡すことができるのだろうか?例えば条件としてブール値配列を使用する

:私はそれをこのような何かを与えるとき

conditions = [True, False, True, True, False] 

if conditions: 
    <do stuff> 

Pythonはエラーをスローしませんが、私はそれが何をしたいのかやっている場合、私はわかりません。それは実際にリスト全体を比較していますか?もしそうなら、それはandまたはorのファッションですか?それとも、最初のアイテムを比較するだけのように、何か違うことをしていますか?

+1

リストが空でないかどうかを確認するだけです。 – vaultah

+0

関連(と私の意見では重複)http://stackoverflow.com/questions/53513/best-way-to-check-if-a-list-is-empty – ayhan

+2

「アレイ」という用語を混同しないでください。と "リスト"。 – user2357112

答えて

0

使用all

if all(conditions): 
    ... 
+0

なぜ-1?私の答えは役に立たなかった..? – grundic

+0

不完全な解答、解答のない解答、あるいはPython 2のリンクさえも、さまざまな理由で人によって下降します。あなたは確かに知ることができません\ * shrug \ * – vaultah

+1

彼らは彼らの評価も(少し)犠牲にすることを覚えておく必要があります。私はその質問がいつPythonに関するものなのか理解できますし、答えはPeppa Pigについてでしたが、ここに... Doh .. – grundic

4

空リストは "偽" です。他はすべて "真"です。あなたはすべてのの条件に該当する場合のものをしたい場合は、条件のいずれかが真である場合のものをしたい場合は、

if all(conditions): 
    <do stuff> 

を使用

if any(conditions): 
    <do stuff> 
2

リスト意志を使用ifが空でない場合は、ifテストを渡します。したがって、[]は偽になり、他のすべての値はテスト目的で真となります。

リストの任意の値がTrueであるかどうかをテストする場合は、anyを使用してテストできます。すべての値が真であるかどうかをテストする場合は、同じ方法でallを使用してください。

例:

if any(conditions): 
    do something 
0

だけ使用all

>>> conditions = [True, False, True, True, False] 
>>> all(conditions) 
False 
>>> conditions = [True, True, True, True, True] 
>>> all(conditions) 
True 
>>> 

ドキュメントから:

戻り真のiterableの全ての要素は(該当する場合、または反復可能である場合、空の)。

関連する問題