Функция 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
Alhaji Bai Konte, Dembo Konte, Ma Lamini Jobate — Gambian Griot Kora Duets (Folkways Records, 1979)
#kora#griot#Gambia
Кора похожа на арфу, со струнами, натянутыми на половинку тыквы. На протяжении веков кора была визитной карточкой сложной полиритмической западноафриканской музыки. Альбом Gambian Griot Kora Duets документирует эволюцию использования коры в традиционной музыке Гамбии. Он был записан при участии Альхаджи Бай Конте, его сына, Дембо Конте, и еще одного музыканта, Ма Ламини Джобате. Исполнители на коре неразрывно связаны с традицией Джали, представителями которой являются семьи гриотов Западной Африки. Гриоты – хранителями местной культуры, типа ашугов или трубадуров. В то же время этот альбом ознаменовал начало международного интереса к коре. После записи пластинки Дембо Конте отправился в турне по всему миру, выступил в легендарной программе Джона Пила на BBC в 1989 году и сотрудничал с влиятельной группой Mustaphas 3.
🔗Spotify | AppleMusic | Bandcamp
L'Orchestre Kanaga de Mopti — L'Orchestre Kanaga de Mopti (Mali Kunkan, 1977)
#funk#afrobeat#griot#dogon#Mali
В 1977 году малийский правительственный лейбл Mali Kunkan выпустил серию пластинок, среди которых был и этот священный Грааль малийской музыки. Ансамбль происходит из города Мопти и назван по имени большой церемониальной маски Канага народа Догонов.
На первой стороне пластинки первым идет трек Kulukutu, вокальное вступление которого посвящено празднованию бракосочетания. Композиция N'Do N'Do обычно сопровождает танец, исполняемый детьми в дни Рамадана. Завершает первую сторону трек Sare Mabo о ткачах племени Догонов.
Вторая сторона открывается композицией Kanaga, рассказывающей о маске Догонов и танцорах, которые носят ее во время ритуальных церемоний. Затем следует песня в стиле певцов-гриотов Gambari, исполняемая во время свадебной церемонии и восхваляющая могущество жениха. Завершающий трек Sory Bamba посвящен лидеру группы Сори Бамба.
Spotify | AppleMusic | VK
Taste of Africa: Сказания - Эпос о Сундиате 🦁🌍✨
В Западной Африке есть тексты, которые слушают сердцем. Один из самых известных - Эпос о Сундиате (Мали) 🎙️🥁 Его веками передают гриоты: хранители памяти, музыканты и рассказчики🎶📜
Сундиата Кейта - легендарный основатель империи Мали XIII века. Его называют «львом» 🦁 не потому, что он родился сильным, а потому что стал им - через путь, который знаком любой культуре мира: предназначение, испытание, изгнание и возвращение 🔥
В сюжете о принце, вынужденном уйти в изгнание, а затем вернуться, чтобы вернуть свой трон, легко узнать архетип, знакомый по мультфильму “Король Лев”
Что делает этот эпос таким живым и современным?
🔮 Пророчество
История начинается с предчувствия: судьба ещё не наступила, но уже звучит в воздухе.
🪄 Магия как язык мира
Здесь магия - способ объяснить невидимое: силу слова, амулетов, благословений, защиту рода и общины.
🧭 Путь героя
Сундиата проходит через уязвимость и сомнение - и именно это превращает его в лидера. Не «идеального», а настоящего.
🤝 Община важнее одиночки
В центре - не только герой, но и союзники, род, память предков. Победа - это всегда коллективный ритм.
И самое главное: этот эпос - доказательство того, что музыка и устное слово могут быть архивом цивилизации. В в западноафриканской традиции гриотов говорят, что пока звучит голос гриота - жива история. Пока держится ритм - держится и связь поколений🥁🕊️
По сути путь Сундиаты это и личный жизненный путь человека, который описывается в разных культурах и современных учениях примерно одинаково: Так что на каком бы отрезке вашего пути вы бы сейчас не находились, знайте, что впереди трон царствия своей собственной жизни🌍🎶
🌟Ритмическое путешествие продолжается - Король Лев внутри каждого🌟
#TasteOfAfrica#Sundiata#Mali#WestAfrica#Griot#OralTradition#AfricanHistory#WorldCulture🦁✨
🌟🔔 «Ритмическое путешествие продолжается!» 🥁🌟
Гриоты — мастера ритма, слова и памяти 🎶🥁🗣️
В традициях Западной Африки гриот (джели/джали) — артист и хранитель того, что доверяют времени: имя рода — честь семьи — нить преемственности. Он выходит к людям с тремя нитями в ладонях — памятью, голосом и ритмом — и делает главное: собирает общину в одно целое.
До письменных законов и документов мир во многом держался на ритме: он связывал разум, душу и тело, выравнивал дыхание и шаг, настраивал внимание — и давал словам меру и вес.
🥁 Ритмом гриот сводит голоса в общее “мы” и охлаждает спор, пока он не вспыхнул враждой.
🗣️ Словом он поднимает планку чести похвалой, возвращает меру точной сатирой, скрепляет союзы памятью имён и обещаний.
🎶 Музыкой (иногда под кору или балафон) он учит слушать, передаёт нормы через чувство и переводит прошлое в поступок — прямо сейчас.
А теперь загадка!
Что связывает прошлое, настоящее и будущее ⏳ — и одновременно разум, душу и тело 🧠❤️🧍?
Это — РИТМ 🥁✨
🔄 Сохраняйте пост и приглашайте друзей в наше увлекательное путешествие вокруг света африканских ритмов!🎶🌍
#TasteOfAfrica#WestAfrica#Africa#AfricanCulture#OralTradition#Griot#Jeli#Jali#Storytelling#Music#Traditions#Heritage#Culture#History#Kora#Balafon#Mali#Senegal#Gambia#Guinea