l = ["a", "b", "c", "d", "e"]
if "a" in l and "b" in l and "c" in l and "d" in l:
pass
このif文を書くにはどうすればよいでしょうか?Pythonのif文の短縮方法
が試み:
if ("a" and "b" and "c" and "d") in l:
pass
しかし、これは正しくないようです。正しい方法は何ですか? パイソン3
l = ["a", "b", "c", "d", "e"]
if "a" in l and "b" in l and "c" in l and "d" in l:
pass
このif文を書くにはどうすればよいでしょうか?Pythonのif文の短縮方法
が試み:
if ("a" and "b" and "c" and "d") in l:
pass
しかし、これは正しくないようです。正しい方法は何ですか? パイソン3
アイデアはall(..)
と発電機を使用するかもしれない:
if all(x in l for x in ['a','b','c','d']):
pass
すべてがbool(..)
がTrue
で、すべての要素の反復可能放射する入力として反復可能とチェックの任意の種類を取ります。
all
の中には、発電機を使用しています。それは、このように<other-iterable>
内のすべての要素を取り、それに<expr>
を呼び出します(無括弧付き)
<expr> for <var> in <other-iterable>
:のように発電機が動作します。この場合<expr>
はx in l
であり、そしてx
は<var>
ある:
# <var>
# |
x in l for x in ['a','b','c','d']
#\----/ \---------------/
#<expr> <other-iterable>
generatorsのさらなる説明。
非常にきれいな説明 –
@MoinuddinQuadri:あなたのようなコメントありがとう:)。 –
l = "abcde"
if all(c in l for c in "abcd"):
pass
私はOPがここでは1文字の文字列で例を挙げていると思いますが、実生活では多分複数の文字列に対してチェックしますが、それでも良い答えです。 –
あなたがセットを使用することができる:
l = { 'a', 'b', 'c', 'd', 'e' }
if { 'a', 'b', 'c', 'd' } <= l:
pass
異なるアプローチは、セットを使用している:
l = ['a', 'b', 'c', 'd', 'e']
if set(['a', 'b', 'c', 'd']).issubset(set(l)):
pass
あなたはまた、このような場合のためset
オブジェクトを使用することができる:
l = ["a", "b", "c", "d", "e"]
if set(l) >= set(("a", "b", "c", "d")):
print('pass')
セット> =その他
otherのすべての要素がセットに含まれているかどうかをテストします。 `ALL`と` any`について聞い
https://docs.python.org/3/library/stdtypes.html?highlight=set#set.issuperset
? –
2番目のスニペットは '' in l: ''に評価されます。 – jonrsharpe