List flattiening in python
Feb. 17th, 2021 10:24 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Имеется элементарная задачка - есть список шаблонов. Надо получить список файлов, удоволетворяющих любому из них.
У меня почему-то получается монструозная конструкция:
from glob import glob
from itertools import chain
chain(*[glob(x) for x in patterns])
Так то оно еще ничего выглядит, но когда там Inline список из десятка шаблонов, а все это в аргументе for... Неужели никак попроще нельзя?
Upd Приз моих симпатий получает двухуровневый comprehension:
import glob
{f for p in patterns for f in glob.glob(p)}
А фигурные скобки - это чтобы избежать дублирования, ежели получится что один и тот же файл удовлетворяет нескольим шаблонам. В результате будет set, ну и какая разница, for можно и по set гонять.