すべての値、つまり辞書のすべてのキーに対応する値が0であるかどうかをチェックしたいと思います。ループなしで行う方法はありますか?もしそうなら、どのように?Pythonで辞書のすべての値が0であるかどうかをチェックする方法は?
答えて
使用all()
:与えられたイテラブルのすべての要素に該当する場合True
all(value == 0 for value in your_dict.values())
all
戻ります。 all
で
any()メソッドを使用することができます。基本的にブール値のパラメータをチェックしますが、0はこの場合はFalse、その他の数値はTrueとして動作します。 このコードを試してみてください。
dict1 = {"a": 0, "b": 1}
dict2 = {"a": 0, "b": 0}
print not any(dict1.itervalues())
print not any(dict2.itervalues())
出力:
False
True
EDIT2:要素の空のリストとのいずれかを呼び出す1追記/注意は、()はFALSEを返します。
:
>>> d = {1:0, 2:0, 3:1}
>>> all(x==0 for x in d.values())
False
>>> d[3] = 0
>>> all(x==0 for x in d.values())
True
あなたがany
やall
を使用するかどうかに関係なく、評価が怠惰になります。 all
は、遭遇した最初の偽値にFalse
を返します。 any
は、遭遇する最初の真理値にTrue
を返します。
したがって、not any(d.values())
は、私が提供した辞書の例と同じ結果になります。それは発電機の理解とall
バージョンより少し短くなります。個人的には、私はまだall
ヴァリエーションが好きです。読者が頭の中で論理否定をしなくても、あなたが望むものを表現するからです。
ここany
を使用して1つの以上の問題はしかし、あります:
>>> d = {1:[], 2:{}, 3:''}
>>> not any(d.values())
True
辞書は値0が含まれていませんが、すべての値は、空のリストについては、すなわちbool(value)
リターンFalse
falsyあるためnot any(d.values())
はTrue
を返します。 、辞書または文字列。
要約すると、可読性は明らかであり、all
ソリューションを使用してください。
'not any'は、すべての値が_falsey_の場合にTrueと評価されるため、すべての値が '0'に等しい場合はテストとは異なります。 –
あなたはまた、それをいずれかを使用して、他の方法で行うことができます:それはtrueを返す場合
>>> any(x != 0 for x in somedict.values())
を、そしてすべてのキーは、すべてのキーは、あなたがそれを行うましたか0
- 1. Pythonの - 私は辞書があるとすべての辞書の値
- 2. 辞書の配列がscond配列の辞書を支配するかどうかをチェックする方法?
- 3. 値が一連の値であるかどうかをチェックする方法?
- 4. Pythonで変数が空であるかどうかをチェックする方法は?
- 5. 配列のすべての要素が特定の値であるかどうかをチェックする方法?
- 6. 辞書(Python)を更新せずにdefaultdictのキーをチェックする方法は? Pythonの辞書での作業時
- 7. 配列の値が真であるかどうかをチェックする方法
- 8. FlexでXML値がnullであるかどうかをチェックする方法
- 9. 値がリストにあるかどうかチェックする方法
- 10. Python辞書でキーと値のペアが存在するかどうかを調べる
- 11. Python - 辞書の値がリストであることはできますか?
- 12. Pythonで辞書の値を並べ替えるにはどうすればいいですか?
- 13. 2つの大規模なPython辞書が等価であるかどうかをチェック
- 14. 数値が64ビット整数であるかどうかをチェックする方法
- 15. 辞書からのデフォルト値をPythonで修正する方法は?
- 16. UITextFieldsが空であるかどうかをチェックする方法?
- 17. java.lang.reflect.TypeがEnumであるかどうかをチェックする方法
- 18. Python辞書のすべての固有値を出力する
- 19. は、すべてのEditTextが空であるかどうかをチェックします。
- 20. リストと別の辞書からPythonで辞書を作成する方法
- 21. Pythonで辞書の値を取り出す方法は?
- 22. 辞書のキーと値をチェックする
- 23. キーが辞書にあるかどうかをチェックしていて、同じ "if"の値でその値を取得していますか?
- 24. 値がRであるかどうかをチェックする
- 25. テンプレートタイプが別のテンプレートタイプであるかどうかをチェックする方法は?
- 26. テンプレートパラメータがイテレータの型であるかどうかをチェックする方法は?
- 27. POSTフォームのデータが空であるかどうかをチェックする方法は?
- 28. オブジェクトがJavascriptの「サブオブジェクト」であるかどうかをチェックする方法は?
- 29. Python:辞書のリストをいくつかの値で並べ替えるには?
- 30. JSONオブジェクトがJavaで空であるかどうかをチェックする方法は?
ある他、0ではありませんループ? –
私は辞書を繰り返してすべての値、すなわち1つでも真でない場合はすべてのキーに対応する値をチェックしました。私はフラグ値を変更してループから逸脱しました。 –