Функция 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
🌎 Land reclamation has transformed Singapore’s size by about 25% since 1819, expanding the island using sand and soil from neighboring countries. The ongoing Tuas Megaport project will create new coastline with over 221 million cubic meters of fill material. ✨
#geography⚡#engineering⚡#urbanization
👉subscribe Interesting Planet
🌎 Dubai’s Palm Jumeirah is an artificial archipelago built from over 120 million cubic meters of sand and rock. Constructed in the shape of a palm tree, it adds 56 kilometers of new coastline to the city. ✨
#engineering⚡#urbanization⚡#shoreline
👉subscribe Interesting Planet
👉more Channels
🌍 The average human today is more likely to live in a city than in the countryside—over 56% of the world’s population is now urban, a dramatic shift from just a few generations ago. ✨
#population⚡#urbanization⚡#cities⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 Over half of the world’s population now lives in cities, a dramatic shift from 1950 when only about 30% lived in urban areas. Urbanization is rapidly transforming our planet. ✨
#population⚡#urbanization⚡#cities⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 In 1800, fewer than 1 billion people lived on Earth. Today, the world population has soared past 8 billion, with more than half living in urban areas like cities and large towns. ✨
#population⚡#urbanization⚡#demographics⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 In 2022, Nigeria’s largest city, Lagos, became one of only two megacities in Africa to surpass 20 million residents, helping drive Africa’s rapid urban population growth. ✨
#population⚡#urbanization⚡#Africa⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 Some cities, like Johannesburg, are built on high plateaus called "highveld," sitting over 1,700 meters above sea level. Their altitude shapes local climate and city life in unique ways. ✨
#urbanization⚡#elevation⚡#climate⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 By 2050, city dwellers are expected to make up nearly 70% of the global population. Urban areas are now growing twice as fast as rural regions, reshaping how billions of people live. ✨
#urbanization⚡#cities⚡#demographics⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🆕10(1)/2026
🔗Исторические и современные предикторы региональных культурных различий в индивидуализме и коллективизме в России
Андрей А. Григорьев, Альбина А. Галлямова, Дмитрий С. Григорьев, Джон У. Берри
В данном исследовании, основанном на экокультурном подходе, изучаются исторические и современные факторы, предсказывающие региональные культурные различия в соотношении индивидуализма (далее – ИНД) и коллективизма (далее – КОЛ, а для соотношения: ИНД/КОЛ) в России, с акцентом на частную собственность на землю в конце XIX – начале XX века и современную занятость в сельском хозяйстве. Анализ показывает, что регионы с более высокой
распространенностью частной собственности на землю в 1877 г. и 1905 г. демонстрируют более выраженные тенденции ИНД в современных региональных границах, что свидетельствует о преемственности культурных черт. Кроме того, современные факторы, такие как доля рабочей силы в сельском хозяйстве и этнический состав, в частности доля этнических русских,
оказываются значимыми предикторами различий ИНД/КОЛ. Однако урбанизация не обнаруживает значимой связи с региональными культурными различиями в ИНД/КОЛ, что указывает на то, что, хотя она может быть связана с ИНД, она не является основным предиктором.
Результаты подчеркивают, что факторы, коренящиеся в традиционных типах хозяйства, вызывают глубокие и долгосрочные последствия для региональных культурных различий, сохраняясь даже в условиях масштабных общественных преобразований, произошедших в советское время.
▫️Публикация в журнале осуществляется бесплатно благодаря поддержке «АКБ «Держава» ПАО» и Экономического факультета МГУ имени М.В.Ломоносова.
#population_and_economics#regional_culture#individualism_collectivism#urbanization
🌍 The largest internal migration in history occurred in China, with over 200 million people moving from rural villages to booming cities since the 1980s, transforming the nation’s economy and society. ✨
#migration⚡#China⚡#urbanization⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 Between 2010 and 2020, India saw more internal migrants than any other country, with tens of millions moving from villages to cities in search of work and better living conditions. ✨
#migration⚡#India⚡#urbanization⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 In 2021, Luxembourg became the first country to offer free nationwide public transport. This move reshapes economic geography by making travel easier and connecting people to jobs and services. ✨
#transport⚡#economy⚡#urbanization⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍