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']

给出错误

于 2012-04-19T14:16:44.790 回答