gpt4 book ai didi

python - 列表过滤和转换

转载 作者:太空狗 更新时间:2023-10-29 18:14:17 28 4
gpt4 key购买 nike

我有一个库文件名列表,我需要根据正则表达式对其进行过滤,然后从匹配的文件中提取版本号。这是做到这一点的明显方法:

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”循环。有什么建议吗?

最佳答案

列表理解怎么样?

In [5]: versions = [m.group(1) for m in [regex.match(lib) for lib in libs] if m] 
In [6]: versions
Out[6]: ['3.3.1', '3.2.0']

关于python - 列表过滤和转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1665667/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com