Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
Joined a growing AMG family 🚘AMG GT63 Pro 4Matic revealed
AMG has already released details about the forthcoming 805-hp plug-in hybrid GT63 SE that will sit at the top of the range in terms of both price and performance.
Now here’s another new version, the turned-up and track-focused AMG GT Pro which has been unveiled at the Goodwood Festival of Speed in the U.K.
Individual changes over the existing GT63 are small, but the cumulative result is claimed to be a significant improvement in performance when the car is driven on a circuit.
The second-generation AMG GT's 4.0-liter V-8 makes peaks of 603 horsepower and 627 pound-feet of torque (850.1 N·m).
Enhanced cooling and aerodynamics are the main changes to the car, which also gets standard carbon-ceramic brakes and optional track-biased Cup R tires at no extra cost.
According to AMG boss Michael Schiebe, the Pro is well suited to track use but without becoming harsh on-road, "to maintain a high level of day-to-day usability for a car of this type."
Deliveries (including pricing) of this 2025 model are expected to start early next year.
@CarsNews
#Mersedes#AMG#sportscar#hybrid
🚘 GT63 Pro 4Matic присоединился к растущему семейству AMG
AMG уже публиковала подробную информацию о готовящемся к выпуску 805-сильном гибридном GT63 SE с подключаемым модулем, который будет лидировать в линейке как по цене, так и по производительности.
А вот ещё одна новая версия, усовершенствованная и ориентированную на трековые трассы AMG GT Pro, которая была представлена на фестивале скорости в Гудвуде в Великобритании.
Отдельные изменения по сравнению с существующим GT63 незначительны, но в целом заявляется, что в результате значительно улучшаются характеристики при движении автомобиля по трассе.
4,0-литровый V-8 AMG GT второго поколения развивает максимальную мощность в 603 лошадиные силы и крутящий момент в 850.1 Нм.
Улучшенное охлаждение и аэродинамика – вот основные изменения в автомобиле, который также получил стандартные карбон-керамические тормоза и опциональные шины Cup R без доплаты.
По словам босса AMG Михаэля Шибе, Pro хорошо подходит для использования на треках, но при этом не становится слишком жестким на дороге, "чтобы поддерживать высокий уровень повседневного использования автомобиля такого типа".
Ожидается, что поставки этой модели 2025 года начнутся в начале следующего года. Тогда же станет известна цена.
@avtoNovosti
#Mersedes#AMG#спорткар#гибрид