我有一个库文件名列表,我需要针对正则表达式进行过滤,然后从匹配的文件中提取版本号。这是显而易见的方法:
libs = ['libIce.so.33', 'libIce.so.3.3.1', 'libIce.so.32', 'libIce.so.3.2.0']
versions = []
regex = re.compile('libIce.so\.([0-9]+\.[0-9]+\.[0-9]+)')
for l in libs:
m = regex.match(l)
if m:
versions.append(m.group(1))
这会产生以下列表:
['3.3.1', '3.2.0']
然而,我觉得循环不是很“Python 风格”,并且觉得应该可以用一些智能单线替换上面的“for”循环。建议?