我想知道是否有更好的表达if语句的方法:
if any(i in word for i in '@/#')==False:
我正在遍历一个字符串列表,并将所有没有上述字符的字符串追加到新列表中(我还想保留旧列表)。上面的说法有效,但它很难看,我的IDE告诉我可能有更好的方法。有没有办法可以理清我想要的更漂亮或更快的字符串?
答案 0 :(得分:4)
if not any(i in word for i in '@/#'):
或
if all(i not in word for i in '@/#'):
几乎没有理由将布尔值与True
或False
与==
进行比较。
答案 1 :(得分:3)
你可以尝试这样:
characters = set('@/#')
然后:
if characters.isdisjoint(word):
或者替代(但有点慢,这对于极长的字符串可能有意义):
if not characters.intersection(word):
(当然,有一个更好的名称而不是characters
与其概念含义有关)