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

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']

最佳答案

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

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

10-04 21:35
查看更多