Функция sub в regex может принимать функцию в качестве аргумента repl.
📄 Из документации:
If repl is a function, it is called for every non-overlapping occurrence of pattern. The function takes a single match object argument, and returns the replacement string.
То есть для каждого совпадения будет вызвана функция для вычисления замены вместо замены на одну и ту же строку для всех совпадений.
Иными словами, для замены разных совпадений на разные строки не потребуется запускать re.sub() много раз для каждой строки замены. Достаточно определить функцию, которая вернёт строку для каждого из совпадений.
Описание слишком запутанное🤔, давайте лучше рассмотрим на простом примере:
Создаем карту замены. То есть какие строки на какие требуется менять.
remap = {
'раз': '1',
'два': '2',
'три': '3',
'четыре': '4',
'пять': '5',
}
Пишем функцию поиска строки для замены. Единственным аргументом будет объект re.Match.
Используя данные этого объекта мы вычисляем замену on-the-fly!
def get_str(match: re.Match):
word = match.group(1)
return remap.get(word.lower()) or word
Пример текста.
text = '''Раз Два Три Четыре Пять
Вместе будем мы считать
Пять Четыре Три Два Раз
Мы считать научим вас
'''
Теперь запускаем re.sub и вместо строки замены (repl) подаём имя функции.
(Данный паттерн ищет отдельные слова в тексте)
>>> print(re.sub(r'(\w+)', get_str, text))
1 2 3 4 5
Вместе будем мы считать
5 4 3 2 1
Мы считать научим вас
Думаю, достаточно наглядно 🤓
#libs#regex
Пара слов про Индию. Все как у нас. Пошлины, налоги, импорт крайне дорог. Tata Motors - крупнейший производитель (ему принадлежит JLR) - строит легковые, грузовые, строительную технику. Основана в 1945 году (делала локомотивы), с 1954 года - машины, сейчас на 283 месте в мировом Топ-500 компаний.
Сейчас TATA обновила бюджетный PUNCH - 3,827 длина, 1,2 л турбо 118 лс, механика или автомат, монопривод. 2 цифровых монитора, люк, камеры кругового обзора, аудиосистема 8 динамиков и 6 подушек безопасности, климат контроль. Топ версия стоит 11,7 тыс долл или 900 тыс руб.
PUNCH можно сравнить с Granta, (она у нас стоит примерно также), и понять что Granta вообще выглядит неплохо.
Granta - 👍
TATA - 👌
Одно и тоже - 🤝
#tata
Сегодня ночью, во время патрулирования Деснянского района, водитель полицейского автомобиля #Toyota допустил столкновение с припаркованным эвакуатором #TATA на улице Бальзака, 61.
Оба полицейские получили травмы и были госпитализированы в больницу.
Причины аварии выясняются.
Фото: Светлана
АВТОВАЗ хочет разработать турбомотор и "автомат" вместе с индийскими компаниям
Волжский автогигант заинтересован в совместной разработке автомобильных технологий с индийскими партнерами, включая создание новой платформы и развитие гибридных решений. Об этом сообщил вице-президент АВТОВАЗа Сергей Громак, пишет РИА Новости.
По словам Громака, российский автопроизводитель видит перспективы в совместной работе с индийскими инжиниринговыми центрами над новыми платформами, гибридными силовыми установками, а также над развитием автоматических трансмиссий и турбированных двигателей.
Вице-президент также отметил интерес АВТОВАЗа к промышленным роботам, 3D-принтерам, штамповой оснастке и пресс-формам индийского производства. Речь идет как о поставках оборудования, так и о возможной локализации его производства в России.
Источник: rg.ru/2025/12/05/avtovaz-hochet-razrabotat-turbomotor-i-akp-vmeste-s-indijskimi-kompaniiam.html
#RCINews#АВТОВАЗ#Лада#LADA#Tata#Mahindra
Tata to pay $2.4 billion for troubled Air India
Tata will take charge of Air India after a winning bid of $2.4 billion, including equity and debt, the Indian government said, marking the end of years of struggle to privatize the financially troubled airline.
#Tata#AirIndia#TataAirIndiaBid#India#News#Reuters
Subscribe: http://smarturl.it/reuterssubscribe
Reuters brings you the latest business, finance and breaking news video from around the globe. Our reputation for accuracy and impartiality is unparalleled.
Get the latest news on: http://reuters.com/
Follow Reuters on Facebook: https://www.facebook.com/Reuters
Follow Reuters on Twitter: https://twitter.com/Reuters
Follow Reuters on Instagram: https://www.instagram.com/reuters/?hl=en
➖@reutersworldchannel➖