如何简化检查字符串中常见字符的 if 语句?

How to simplify an if statement checking common characters in a string?

我想知道是否有更好的方式来表达这个 if 语句:

if any(i in word for i in '@/#')==False:

我正在遍历字符串列表并将所有不包含上述字符的字符串附加到新列表(我还想保留旧列表)。上面的语句有效,但它很丑陋,我的 IDE 告诉我可能有更好的方法。有没有一种方法可以整理出我想要的更漂亮或更快的字符串?

if not any(i in word for i in '@/#'):

if all(i not in word for i in '@/#'):

几乎没有理由将布尔值与 TrueFalse== 进行比较。

你可以这样试试:

characters = set('@/#')

然后:

if characters.isdisjoint(word):

或者(但速度有点慢,这对于极长的字符串可能有意义):

if not characters.intersection(word):

(使用更好的名称而不是 characters 与其概念意义相关)