Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
В галерее КОРНЕЙ стартовал проект «Искусственный язык» студентов MSCA
Это чистый диалог на стыке contemporary art и конлангинга (создания искусственных языков).
Участники не просто писали картины, они придумывали несуществующие понятия. И теперь эти слова становятся и названиями работ, и ключами к их восприятию. В экспозиции: инсталляции, живопись и видео-арт, которые говорят с нами на только что изобретенном наречии.
Услышать истории из первых уст и расшифровать «диалекты» авторов можно на ближайших медиациях:
✔️ 19 марта, 19:30
✔️ 20 марта, 15:00, 19:30
✔️ 21 марта, 12:00
✔️ 22 марта, 16:00
Также в программе мастер-классы по вязанию, живописные эксперименты и онлайн-дискуссия о том, как язык создает реальность.
🗓️ до 22 марта
⛳️ ул. Б. Никитская, 22/2, под. 3
#анонс_лично#галереякорней
#искусственныйязык#msca
#анонс_лично
В преддверии дня всех влюбленных Московская школа современного искусства проведет лекцию «Отношения во времени»о ярких и известных парах в искусстве:
✔️ Христо и Жанна-Клод
✔️ Илья и Эмилилия Кабаковы
✔️ Абрамович и Улай
✔️ Родченко и Степанова.
Узнайте, как они вдохновляли друг друга, создавали совместные проекты и как долго длились их творческие союзы.
Вход свободный по регистрации.
Визуал: работа Варвары Степановой. Карикатура на себя и Александра Родченко. 1920 год
🗓️ 13 февраля, 19.30
⛳️ Центр дизайна Artplay,
ул. Н. Сыромятническая, 10, стр.3
#лекция#msca#artplay#отношениявовремени
Лена Сурова на выставке «Обратная сторона Венеры»в Cube.Moscow.
Выпускница MSCA в своём творчестве разбирает образ женщины через символ Венеры — от древних идолов до Барби.
Понравилось, как художница балансирует между критикой и принятием. Да, массовая культура навязывает шаблоны, но почему бы не пересобрать их под себя? Ведь даже «Барби» сегодня — это уже не просто пластиковый идеал, а поле для экспериментов. Лена ловко играет с этим, показывая, что женственность — не клетка, а бесконечный конструктор.
Кто угадает из чего сделаны работы?
🗓️ успейте до 13 апреля
⛳️ ул. Тверская, 3 (-2 этаж)
#были_лично#венера#msca
#cubemoscow#ленасурова