python - 列表理解 : Contains This and not That (Python)

标签 python list-comprehension

我正在逐行读取文件,并按照我想要的方式使用 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/

相关文章:

Python Django 名称错误 : name 'datetime' is not defined

python - 在 python 中遍历字典中的项目

python - 从字符串列表中提取数字 - python

rust - Rust 是否具有与 Python 的字典理解语法等效的语法?

python - 在列表列表中添加换行符

python - request.post python 的 json 连接

python - 多部分/混合电子邮件附件未显示,但仅在 Windows 10 邮件中显示

python - x 轴上的 Matplotlib 日期时间

python - 如何将以下嵌套的 dict 列表解压缩为元组?

python - 在 Python 3.4 中生成具有重复项的随机数的随机列表