Функция 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
⭐️ FPS – bu nima va nega muhim?
FPS — bu “Frames Per Second”, ya’ni sekundiga ko‘rsatilayotgan kadrlar soni degani. Ekranda qancha ko‘p kadr ko‘rsatilsa, tasvir shunchalik silliq, jonli va tabiiy ko‘rinadi.
📊 FPS darajalari nimani bildiradi?
24 FPS bu - kino va filmlar uchun standart. Kadrlar soni kamroq, lekin ko‘z ko‘nikib ketadi.
30 FPS bu - telefon va oddiy kompyuter o‘yinlarida keng tarqalgan. O‘rtacha silliqlik.
60 FPS bu - silliq harakatlar, o‘yinlar va video uchun ideal daraja.
120 FPS+ bu - professional gamerlar va yuqori darajadagi monitorlar uchun. Ultra silliqlik!
🖥 FPS nima uchun muhim?
✅ O‘yinlarda yuqori FPS — tez javob, aniq nishonga olish va “lag”siz o‘ynash demak.
✅ Video tahrirlashda — harakatlar real ko‘rinadi, ayniqsa sport yoki aksiyalarni ko‘rsatganda.
✅ Virtual haqiqat (VR) texnologiyalarida esa past FPS bosh aylanishi va ko‘z charchog‘iga sabab bo‘ladi.
✅ Xulosa:
FPS — bu oddiy raqam emas. U sizning o‘yin yoki videodagi qulaylik, aniqlik va silliqlik darajangizni belgilaydi. Ayniqsa gamerlar uchun bu juda muhim ko‘rsatkich!
👉Bizning barcha loyihalar | #fps
‼️NFT SALE ON@altura_nft‼️
🔫Users can purchase NFT items on ALTURA marketplace at 12PM UTC, Apr 8th 22
⚡️PRESALE & PUBLIC SALE NFT items will be minted on Metastrike.io in 3 weeks from now
https://twitter.com/metastrikehq/status/1512417518992130055?s=21&t=IrjOJtnk9YYpVx_EligtLg
📜join:t.ly/ny93
👉join: t.ly/hsC9
#NFT#FPS#P2E
‼️OPEN ALPHA EVENT ANNOUNCEMENT‼️
🔥Team up, Play, give feedback and Win a Total Prize of $10,000🔥
All $MTS collected through the event will be burned
Full detail: https://t.ly/oD2U
Register form: https://t.ly/h8xy
#FPS#P2E#NFTs