4

文字列A = "abcdef"、、およびいくつかの文字、、"a"およびが"f"あり"m"ます。に文字が表示されないようにする条件が必要ですA

if a not in A and f not in A and m not in A:
    # do something

これを行うためのより良い方法はありますか?ありがとう!

4

2 に答える 2

11

セットはこれに役立ちます-isdisjoint()メソッドを参照してください:

セットに他と共通の要素がない場合はTrueを返します。セットは、それらの交差が空のセットである場合にのみ、互いに素です。

バージョン2.6の新機能。

>>> a = "abcde"
>>> b = "ace"
>>> c = "xyz"
>>> set(a).isdisjoint(set(b))
False
>>> set(a).isdisjoint(set(c))
True

コメント後に編集

セットはまだあなたの友達です。私が今あなたをよりよくフォローしているなら、あなたはこれ(またはそれに近いもの)が欲しいです:

わかりやすくするために、最初にすべてをセットとして設定します。

>>> a = set('abcde')
>>> b = set('ace')
>>> c = set('acx')

文字セット内のすべての文字が文字列に含まれている場合、次のようになります。

>>> a.intersection(b) == b
True

これらの文字のいずれかが文字列に存在しない場合、これは発生します。

>>> a.intersection(c) == c
False

必要なものに近いですか?

于 2012-04-19T14:17:01.117 に答える
0
True in [i in 'abcdef' for i in 'afm']

Trueと

True in [i in 'nopqrst' for i in 'afm']

Falseを与える

于 2012-04-19T14:16:44.790 に答える