我一直试图填充一个列表,以便如果另一个在索引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']
答案 0 :(得分:0)
根据@SimonF的评论,正确的表达应为
filteredNames = [re.findall(r'foo.(\w+)', i)[0] for i,j in zip(columnHeaders,maskNaN) if j ]