python - 使用压缩迭代器和条件的列表理解

标签 python python-3.x list-comprehension

我一直在尝试填充一个列表,以便如果另一个列表在索引 j 处包含 bool 值为 True,我会在另一个列表上执行操作(简单的正则表达式),否则选择通过(隐式)。

import re
maskNan = [True, True, False, True, False]
stringList = ['foo.abc','foo.def','foo.ghi','foo.jkl']
filteredNames = [re.findall(r'foo.(\w+)', i)[0] if j for i,j in zip(columnHeaders,maskNaN)]

这给了我SyntaxError:无效语法在for结尾

虽然这工作正常

justNames = [re.findall(r'foo.(\w+)', i)[0] for i in columnHeaders]

给予

['abc','def','ghi','jkl']

最佳答案

根据@SimonF的评论,正确的表达应该是

filteredNames = [re.findall(r'foo.(\w+)', i)[0] for i,j in zip(columnHeaders,maskNaN) if j ]

关于python - 使用压缩迭代器和条件的列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54450132/

相关文章:

python - 如何在 pandas 数据透视表上执行数学运算?

Python 模块在导入语句中存在属性错误,即使导入语句在之前的代码中有效

python - 在 __str__ 下调用 print(self) 会抛出 RecursionError

python - 如何计算列表中 `None` 的出现次数?

python - 这个列表理解 pythonic 够吗?

python - 如何在 Python 中使用 RE 将重复字符压缩为单个字符?

python - 提取括号内字符串的内容

python - 使用 OAuth 访问 Gmail 原子提要

python-3.x - 如何通过本地 Docker 容器中的 python 应用程序从云存储桶中读取文件

python-3.x - 如何通过搜索列表中给出的关键字值在Python pandas数据框中添加新列?