Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
🔥 13 июля фестиваль электронной музыки "Калейдоскоп" возвращается на Волга-Спорт-Арену с новым MEDIA ART эпизодом! 🔥
Вас ждет уникальное медиа-шоу на гигантских светодиодных экранах, три хедлайнера и два танцпола, один из которых под открытым небом!
Состав хедлайнеров:
📌Catmoonk – певец и диджей из Москвы, который откроет основную сцену своим мощным лайв-выступлением: DJ сет + вокал;
📌Highlite – диджеи и музыканты из Москвы, треки которых подписал на свой лейбл четырёхкратный поюедитель премии "DJ Awards" Solomun;
📌Blaktone – диджеи и музыканты из Санкт-Петербурга, треки которых играют на вечеринках по всему миру.
Прямо сейчас вы можете принять участие в розыгрыше и получить 5 билетов совершенно бесплатно!
🔗Условия розыгрыша: https://t.me/kaleidoscope_ulyanovsk/1116
Фестиваль пройдет при поддержке национального проекта «Туризм и индустрия гостеприимства».
#MEDIAART#ВолгаСпортАрена#Ульяновск#Музыка#Фестиваль
#ЦифровойКонтекст
Deep Cuts: искусство, которое думает 💌
С 3 по 5 июня в Калифорнийском университете в Санта-Барбаре проходит ежегодная выставка "Deep Cuts"от программы Media Arts and Technology🦋
В фокусе — работы на стыке науки, технологии и искусства:
— иммерсивные медиа
— нейросети и робототехника
— визуализация данных и перформансы
😇 Особый акцент — на AlloSphere: трёхэтажной сфере для объёмных научно-художественных визуализаций.
"Deep Cuts" — это пространство, где инженерия становится художественным методом, а медиаинсталляции — интерфейсом между человеком и информацией.
#DeepCuts#MediaArt#UCSB#новости
🎨 Тема следующей встречи Международной молодежной конференции "Креативный контент: в партнерстве с БРИКС" - Дизайн и Медиаискусство 🎨
Наше творческое путешествие продолжается - следующая онлайн-встреча состоится 26 ноября! 🙌
Мы погрузимся в захватывающие миры Дизайна👩🎨 и Медиаискусства👨💻, чтобы исследовать последние тренды, инновации и кросс-культурные идеи в странах-партнерах БРИКС - Беларусь, Боливия, Вьетнам, Казахстан, Куба, Малайзия, Нигерия, Таиланд, Уганда, Узбекистан🌍
👉 Если вам интересны дизайн, цифровое искусство и творческие медиа, прямо сейчас регистрируйтесь по ссылке: docs.google.com/forms/d/e/... 💌
Зарегистрированные участники получат ссылку на подключение к Конференции на указанную при регистрации почту за день до мероприятия.
Сертификаты📜 активным участникам Конференции будут выданы по итогу встречи.
Организатор - Проектный офис международного молодежного сотрудничества "Россия-БРИКС" при поддержке Фонда креативных индустрий Ульяновской области, Сообщества цифровых управленцев «я-ИТ-ы» и ОТРО «Санкт-Петербургский Союз дизайнеров».
✨Творим, общаемся, развиваемся вместе!✨
#BRICS#CreativeContent#Design#MediaArt#Conference#БРИКС#КреативныйКонтент#Дизайн#МедиаИскусство#Молодежь