我一直在尝试填充一个列表,以便如果另一个在索引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 ]