Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
Мы не просто рекомендуем, а настаиваем!
Не бойтесь сочетать яркие цвета аксессуаров в одном образе ❤️💙 Посмотрите как классно смотрятся рядом наши браслеты из рубина и сапфира 💫
#ManiovichAM
Ruby Pearl Bracelet
Sapphire Pearl Bracelet
Колье Tie Chain with shiny pendants
Моносерьга Single Earring With Cross Pendant
Совместный бранч и мастер-класс MANIOVICH.AM и КОНДИТЕРСКАЯ ПУШКИН🤍
27 мая в пространстве кондитерской «Кафе Пушкинъ» прошел яркий семейный мастер-класс MANIOVICH.AM
Еще больше красоты и творчества для наших гостей! ✨ Каждый смог сделать уникальное украшение своими руками и оценить волшебно вкусные десерты 🧁 И, конечно, весело провести время с детьми!
До встречи на следующем мастер-классе😊
#ManiovichAM
Такой коллаборации у нас еще не было!⚡️
Встречайте: коллекция фирменных мишек от Сашиной младшей сестры – Даши💖
Несколько месяцев назад, увидев мишек на украшениях Maniovich.AM, Даша решила попробовать сделать их сама. Сама заказала смолу, молды, отлила мишек в формы и принесла показать старшей сестре.
Абсолютно очаровательные неповторимые мишки ручной заливки от Даши и наш большой опыт создания украшений, кажется, сложились в идеальный пазл!
Пишите в комментариях, как вам такой тандем и скорее бегите смотреть на эту прелесть на сайте в разделе Sasha x Dasha💖
#ManiovichAM