У меня есть список имен файлов библиотек, которые мне нужно отфильтровать от регулярного выражения, а затем извлечь номер версии из тех, которые соответствуют. Это очевидный способ сделать это:Фильтрация и преобразование списков 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» и чувствовать, что должно быть возможно заменить ' для 'цикла выше с помощью некоторого умного однострочного. Предложения?
Спасибо за «поиск» и «сумму»! Что касается читаемости - уже привык к этому со всеми алгоритмами stl и boost :) –
по какой-то причине это имеет для меня гораздо больше смысла, чем принятый/поддержанный ответ. –