繁体   English   中英

如何简化检查字符串中常见字符的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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM