Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> text = '''
>>> Alex:8999123456
>>> Mike:+799987654
>>> Oleg:+344456789
>>> '''
Соответственно, для выделения нужных элементов будем использовать группы. Получится такой паттерн:
(\w+):([\d+]+)
Как мы будем формировать словарь из найденных групп?
>>> import re
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append({
>>> "name": match.group(1),
>>> "phone": match.group(2)
>>> })
>>> print(results)
[{'name': 'Alex', 'phone': '8999123456'}, ...]
Можно немного сократить запись используя zip
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append(dict(zip(['name', 'phone'], match.groups())))
Но есть способ лучше! Это именованные группы в regex. Можно в паттерне указать имя группы и результат сразу забрать в виде словаря.
>>> for match in re.finditer(r"(?P<name>\w+):(?P<phone>[\d+]+)", text):
>>> results.append(match.groupdict())
То есть всё что я сделал, это добавил в начале группы (внутри сбокочек) такую запись:
(?P<group-name>...)
Теперь найденная группа имеет имя и можно обратиться к ней как к элементу списка
>>> name = match['name']
Либо забрать сразу весь словарь методом groupdict()
>>> match.groupdict()
#tricks#regex
Shabaka — African Culture (Impulse! Records, 2022)
#spiritual#tribal#jazz#ambient#shakuhachi#kora#mbira#United_Kingdom
Первый сольный альбом одного из ключевых джазовых саксофонистов современности, Шабаки Хатчингса. Здесь Шабака демонстрирует искусство владения различными духовыми инструментах, создавая из их звуков абстрактные звуковые полотна, лишенные какой-либо структуры. На записи почти нет ритм-секции, но зато можно услышать японскую бамбуковую флейту сякухати (казалось бы, African Culture); кору, западно-африканскую арфу, и разновидность калимбы, мбиру. В отличии от других работ Шабаки, заряженных политическим протестом и неутомимой, где-то даже агрессивной, импровизацией, сольная работа музыканта получилась очень медитативной, похожей на tribal ambient.
Spotify | AppleMusic | VK
Bulawayo Kwela, Elliot Phiri & David Tapfuma — Bulawayo Harare (Nyami Nyami, 2020)
#dancehall#dub#kwela#mbira#chimurenga#kwaito#Zimbabwe
Bulawayo Harare EP состоит из четырех треков, два из которых посвящены городу Булавайо, второму по величине в Зимбабве, а другие два — столице Зимбабве, Хараре.
Первую сторону пластинки открывает трек Mysterious Africa, переполненный отсылками к дабу и дэнсхоллу. Он исполнен зимбабвийской группой Bulawayo Kwela и спродюсирован Danalogue, участником британской группы The Comet Is Coming. Запись сопровождают слова зимбабвийского поэта Альберта Найати. Второй трек исполняет верный стилю квела Эллиот Фири, видимо один из участников Bulawayo Kwela.
Сторона Хараре представлена песней Дэвида Тапфума, записанной под аккомпанемент мбиры. Песня скорее всего имеет отношение к зимбабвийскому стилю популярной музыки чимуренга. Завершает пластинку ремикс песни Тапфума, сделанный Esa из Кейптауна, в котором слышно влияние южноафриканского хауса квайто.
Spotify | AppleMusic | Bandcamp | VK