我正在逐行读取文件,并按照我想要的方式使用 line.split(',') 将其分开。现在我想标记、复制到列表或执行功能:
包含字符串“THIS”但不包含“THAT”的行。
我正在拍摄看起来像这样的东西:
if any(('THIS' in s for s in csvLine) if any('THAT' **!in** s for s in csvLine):
print csvLine
但这根本不是好的语法。我想我无法使用列表理解,但由于 this answer,我之前已经成功完成了.
我确实有一个使用下面代码的可行解决方案,但我觉得还有更好的东西:
if any('THAT' in s for s in csvLine):
print "do nothing"
elif any('THIS' in s for s in csvLine):
print "do something"
else:
print "do nothing"
如何将这些 if-else 语句的逻辑压缩成更漂亮的 pythonic 代码?
这是我实际的、非一般化的、简单的英语问题:如果一行包含 CHAT 和 TRANSFER,那么它就不重要了。如果它只包含 CHAT,则不重要。如果它只包含 TRANSFER 而不是 CHAT 这个词,则值得注意,我想对该行做一些事情。如何找到带有 TRANSFER 一词但不包含 CHAT 的行?
最佳答案
不确定我是否完全理解 - 为什么您需要遍历该行?这似乎会更好:
if 'this' in csvLine and not 'that' in csvLine:
do_something()
关于python - 列表理解 : Contains This and not That (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10985935/