列表过滤和转换

2024-05-17 06:31:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个库文件名列表,需要根据正则表达式进行筛选,然后从匹配的文件中提取版本号。这是显而易见的方法:

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”循环。 建议?


Tags: 文件方法inre列表forso文件名