Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
🌍 Since 1900, global sea levels have risen about 20 centimeters, speeding up in recent decades. Low-lying islands and coastlines now face more powerful erosion and flooding than ever before. ✨
#sealevel⚡#coastal⚡#erosion⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🚢Амазония становится драйвером роста каботажных перевозок в Бразилии.
В январе 2026 года объем внутренних морских перевозок в северном регионе Бразилии достиг 1,85 млн т, увеличившись на 5,8% год к году, согласно данным Национального агентства водного транспорта.
Основной вклад обеспечил штат Амазонас (1,29 млн тонн), за ним следует Пара (552 тыс. тонн).
Основным грузом остается боксит (875 тыс. тонн), что подчеркивает роль региона как ключевого сырьевого хаба.
Контейнерные перевозки составили 576,9 тыс. тонн, а наливные грузы включали нефтепродукты и нефть, отражая диверсификацию грузовой базы.
С отраслевой точки зрения рост каботажных перевозок подтверждает усиление роли водного транспорта как эффективной альтернативы наземной логистике в условиях протяженной географии страны. Перевозки из северных регионов направляются в порты юго-востока и северо-востока, где формируются ключевые центры перераспределения грузов.
Дополнительно динамика указывает на растущий спрос на улучшение логистической инфраструктуры, где развитие внутренних водных путей становится важным элементом экономического роста и интеграции регионов.
📌Agência Nacional de Transportes Aquaviários (ANTAQ) — основана в 2001 году, государственное агентство Бразилии, регулирующее водный транспорт, принадлежит правительству Бразилии.
#shipping#Brazil#logistics#coastal#trade