Функция 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
⚡️Рекордные
показатели в энергетике ⚡️
Великобритания вошла в историю: в 2024 году ветроэнергетика произвела
30% всего электричества страны – впервые став крупнейшим источником
энергии. A 18 декабря 2024 г. ветроэнергетика обеспечила
невероятные 68.3% электричества Британии – это новый рекорд!
Ветроэнергетика является краеугольным камнем цели нового правительства
Великобритании по полной декарбонизации энергопотребления в Великобритании к
2030 году, наряду с обязательством удвоить мощность наземной ветроэнергетики и
увеличить в 4x мощность морской ветроэнергетики к 2030 году.
#CleanEnergy#WindPower
Wind turbines kill 10,000–100,000 UK birds yearly vs. ~55M from cats; painting one blade black can cut strikes ~70%.
[Read more]
@googlefactss
#wildlife#windpower#birds🦤🐈🌬️⚠️
🌬Аркалык запустил новую ветровую электростанцию
В Аркалыке запущена ветровая электростанция стоимостью 24 млрд тенге, ставшая важнейшей частью комплексного плана развития города на ближайшие годы.
В рамках проекта было установлено 10 ветровых турбин высотой 110 метров и возведено 3 здания для административных нужд.
Электростанция мощностью 48 МВт не только обеспечивает жителей города доступом к чистой энергии, но и способствует созданию благоприятных условий для окружающей среды, сокращая годовые выбросы парниковых газов.
#Аркалык#WindPower#GreenEnergy
🚢GT Wings масштабирует производство ветровых систем в Китае.
Британская GT Wings подписала соглашение с китайской Zunsion Technology о создании производственного партнёрства для серийного выпуска системы ветродвижения AirWing Jet Sail.
Сотрудничество объединяет технологическую экспертизу GT Wings с промышленными мощностями Zunsion, что позволит масштабировать выпуск более чем до 250установок в год и ускорить внедрение парусных систем и технологических решений в судоходстве.
С операционной точки зрения, перенос производства в Китай отражает общий тренд отрасли: европейские инновации переходят на индустриальную базу Азии для снижения затрат и ускорения коммерциализации.
Для рынка это сигнал ускорения внедрения декарбонизационных технологий, где ветровая поддержка становится практическим инструментом снижения расхода топлива и выбросов.
📌GT Wings Ltd. — британская технологическая компания, основана в 2017 году, специализируется на системах ветродвижения для судов; находится в частной собственности.
#Shipping#Decarbonization#WindPower#GreenShipping#Innovation
🚢Oceanwide Expeditions делает ставку на парусно-гибридные круизные суда.
Нидерландская Oceanwide Expeditions подписала соглашение о намерениях на строительство двух экспедиционных лайнеров с гибридной парусной установкой.
Новые суда, рассчитанные на 146 пассажиров, будут оснащены системой ветровой вспомогательной пропульсии и другими экологическими решениями, с вводом в эксплуатацию в 2029–2030 годах.
С операционной точки зрения, проект отражает растущий тренд в экспедиционном сегменте: снижение выбросов за счёт сочетания парусов, гибридных систем и энергоэффективных технологий.
Для рынка это сигнал усиления интереса к ветровой вспомогательной пропульсии, где круизная индустрия становится одним из драйверов внедрения «зелёных» технологий.
📌Oceanwide Expeditions BV — основана в 1993 году в Нидерландах, оператор полярных и экспедиционных круизов; находится в частной собственности.
#Cruise#Shipping#Decarbonization#WindPower#Expedition