列表理解匹配模式

时间:2015-03-01 16:57:46

标签: python-2.7 list-comprehension

尝试使用列表推导进行迭代 列表:

 >> TOOLS = ['FIREFOX', 'CHROME', 'SAFARI', 'OPERA', 'EI', 'KONQUEROR', 'MOSAIC']

list_comprehension:

>> [m.group(0) for m in (re.match(r'FIRE', l) for l in TOOLS) if m] 
['FIRE']

期望的输出:

 ['FIREFOX']

2 个答案:

答案 0 :(得分:3)

不是匹配,而是提取匹配,只需使用匹配本身作为条件。

>>> [l for l in TOOLS if re.match(r'FIRE', l)]
['FIREFOX']

答案 1 :(得分:1)

怎么样:

[i for i in TOOLS if not i.find('FIRE')]

更直观的解决方案:

[i for i in TOOLS if i.startswith('FIRE')]