带压缩迭代器和条件列表的列表理解

时间:2019-01-30 21:54:42

标签: python python-3.x list-comprehension

我一直试图填充一个列表,以便如果另一个在索引j处包含布尔值的列表为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: invalid syntax作为

的结尾

这很好用

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

给予

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

1 个答案:

答案 0 :(得分:0)

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

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