Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
💫Ваши арт- и гастропланы на 14 февраля уже здесь #lifestyle
День Святого Валентина — прекрасный повод объединить искусство и гастрономию, чтобы создать незабываемый день для двоих. Мы подготовили подборку стильных и романтичных комбинаций локаций в пешей доступности для идеального свидания.
Поделитесь подборкой с тем, кто сделает ваш День Святого Валентина по‑настоящему особенным 🤍
ART FLASH
💫Что новогоднего можно найти в «Котомке»: идеи подарков для любимых #lifestyle
Если вы все еще не купили подарки для друзей и близких, у нас есть хорошая новость. Мы заглянули в пространство «Котомка» и собрали подборку вещей, которые приятно дарить и не хочется откладывать на потом.
Любите дарить подарки?
❤️ — да, люблю
💔 — нет, люблю получать
ART FLASH
🌟Ваши арт+гастро планы в Санкт-Петербурге#lifestyle
После выставки хочется, чтобы впечатление не растворилось в дороге — в метро или такси. Чтобы разговор об искусстве продолжился за столом, а вкус ужина перекликался с увиденными работами.
Мы собрали рестораны и кафе в культурной столице в шаговой доступности от галерей — для тех, кто любит продлевать свои культурные маршруты.
ART FLASH
🍿Звезды есть? А если найдем?!
Сколько звезд в нагрудном украшении этой женщины вы насчитали? А сколько концов у этих звезд?
Считайте внимательно, но, сколько бы их ни было, они символизируют одно – солнце.
Звезда – солярный символ, одна из самых распространенных фигур в украшениях, она может иметь пять концов, шесть, семь и даже восемь, рассказала «Молодежке» научный сотрудник музея-заповедника – этнографического комплекса «Дагестанский аул» Сафия Рабаданова.
«Многоконечные звезды обозначали солнце. Вообще, сколько бы концов там ни было, это все обозначало солнце. В доисламской культуре Дагестана встречается звезда с пятью лучами»,
– обращает внимание сотрудница музея.
Солярный знак – один из древнейших символов, именно поэтому фигур, символизирующих солнце, было так много в украшениях горянок.
На фото: аварка из села Урада (Шамильский район), 1967 год.
#lifestyle
Рабочие дни 2025 ис овер — машем им ручкой вместе с коктейлем от Стэнли Туччи.
И посылаем их в жопу, конечно. Ну, так, для проформы.
Включаем новогоднее настроение — пытаемся, хотя бы
🤩
#lifestyle
#Lifestyle🎄
На дворцовой площади
Очень красивая елка
И вообще классная новогодняя атмосфера в центре очень красиво все горит и сверкает ✨💫💫💫💫
Делитесь фотками своих елок😍💓🎄
Получила , как это модно говорить, бьюти бокс, а если просто - доставку с косметическими средствами 😊🍀
Готова сделать распаковку.
Жертва маркетинга или гонка за молодостью - не знаю, как это называется, но как показывает практика: для начала надо высыпаться!
Кто со мной согласен - ставьте реакции 🔥
#lifestyle