Функция 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
🔤Углеводлар организмда ўзлаштирилишига қараб тез (содда молекулали) ва секин (мураккаб тузилишли) турларга бўлинади.
🧁Тез углеводлар, оддий углеводлар деб ҳам аталади, организмда жуда тез парчаланади ва тез сўрилади, қондаги қанд даражасини кескин оширади. Тез углеводларга мисоллар глюкоза, фруктоза, сахароза, малтоза ва лактозадир. Улар шакар, мураббо, асал, ширин мевалар (банан, узум, қовун), ширин ичимликлар ва турли пишириқларда кўп миқдорда учрайди (упаковкадаги кўп маҳсулотларда ҳам анчагина шакар бўлади).
🥦Мураккаб углеводлар деб ҳам аталадиган секин углеводлар секин сўрилади ва қондаги глюкоза даражасини аста-секин оширади. Секин углеводларга мисоллар клетчатка ва крахмал. Улар сабзавот, ширин бўлмаган мевалар, дуккаклилар, ёнғоқлар, уруғлар, бутун донли нон ва донларда кўп миқдорда сақланади.
🤒Кўп миқдорда тез углеводларни истеъмол қилиш қонда қанд ва инсулинни даражасини оширади, бу эса семириш, юрак касалликлари ва диабет ривожланиш хавфини ошириши мумкин. Шунинг учун ҳар хил турдаги углеводларни меёрида ва аралаш истеъмол қилишингиз керак.
🩺Doctor Ziyod | #nutrition#obesity
Latest Funding Rounds in AI and Tech
Recent funding highlights in AI and technology:
- Boon AI secured $15.50M on Dec 20, 2024. Learn more
- OpenLoop raised $15M on Dec 28, 2024. Learn more
- Emocog collected $14.98M on Dec 26, 2024, focusing on cognitive improvement digital therapeutics. Learn more
- Micro Optics raised $13.74M on Dec 13, 2024. Learn more
- Hengtuogao gathered $13.70M on Dec 30, 2024, specializing in integrated precision machinery. Learn more
- Tianhu Technology received $10M on Nov 15, 2024, as a leading AI protein design service in China. Learn more
- NitiNotes raised $9.30M on Dec 23, 2024, developing innovative treatments for obesity. Learn more
- WAJA secured $4.26M on Dec 31, 2024, focusing on regional economic development. Learn more
- Vetbiolix raised $4.23M on Dec 6, 2024, aiming at innovative pet health solutions. Learn more
- ChainOpera AI garnered $3.50M on Dec 26, 2024, working on blockchain solutions for decentralized AI apps. Learn more
These rounds highlight ongoing investment in AI, healthcare, pet care, and tech innovations.
#AI#Tech#Funding#Healthcare#Obesity#Decentralized#Blockchain#Innovation#CognitiveHealth#PetCare#Automation#ProteinDesign#DigitalTherapeutics#Economy#IndustrialSolutions#Hitech#Investment#Startup#VentureCapital#VC