我有一個庫文件名列表,需要根據正則表達式進行篩選,然後從匹配的列表中提取版本號。這是做了明顯的方式: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的風格和感覺它應該是可以更換「爲'循環上面的一些智能單線。 建議?
感謝'findall'和'sum'! 關於可讀性 - 已經習慣了所有的stl和boost算法:) – 2009-11-03 20:26:44
由於某種原因,這一個比我接受/ upvoted的答案對我更有意義。 – 2014-10-21 14:35:29