Функция 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
Outiside: известный учёный считает, что стареть необязательно
Звучит как фраза из научно-фантастического фильма, но не для известного учёного Дэвида Синклера, одного из ведущих в мире специалистов по старению. Профессор Гарварда, вошедший в список 100 самых влиятельных людей мира в 2014 году по версии журнала Time, согласен с тем, что в какой-то момент все должны умереть, но он утверждает, что мы можем удвоить продолжительность своей жизни и жить здоровой и активной жизнью до конца своих дней.
«Простуда, тяжелая тренировка и время от времени голодание - все это задействует то, что Синклер называет цепью выживания нашего тела, в которой сиртуины приказывают клеткам усилить свою защиту, чтобы поддерживать организм (вас) в живых. Хотя теория цепи выживания Синклера еще не доказана в условиях испытаний, существует множество исследований, которые предполагают, что упражнения, переохлаждение и снижение калорийности помогают замедлить побочные эффекты старения и предотвратить болезни, связанные со старением. В частности, голодание было хорошо подтверждено другими исследованиями: в различных исследованиях и мыши, и дрожжи, которых кормили ограниченными диетами, живут намного дольше, чем их сытые коллеги. Двухлетний эксперимент на людях в 1990-х годах показал, что у участников, которые придерживались ограниченной диеты, из-за которой они оставались голодными, часто снижалось артериальное давление, уровень сахара в крови и уровень холестерина. Последующие исследования на людях показали, что сокращение калорий на 12 процентов замедляет биологическое старение на основе изменений биомаркеров крови».
https://theidealist.ru/agingisoptional/
#Outside#наука#человек#старение
Outside: новое исследование раскрывает то, что на самом деле происходит с вашим телом после ультрамарафона на 160 км
Что остаётся от человеческого тела после 160 километров боли, высот и недостатка сна? Новое исследование разобрало ультрамарафон не только на калории, но и на дни восстановления: сколько энергии уходит на финиш, а сколько — на то, чтобы снова встать с кровати. Оказывается, настоящее испытание начинается не на дистанции, а после неё — когда организму нужно залатать себя изнутри, восполнить тысячи сожжённых калорий и восстановить водный баланс. И всё это — без тренировок, но с невероятным "послевкусием" стресса, которое не улетучивается неделями. Эта статья — взгляд внутрь человека, который дошёл до предела, и за него заглянул.
«Тренировка — это тяжело. Но и восстановление организм воспринимает как полноценную работу. Не забывайте подкармливать своё тело, чтобы оно справилось»
https://theidealist.ru/after160/
#Outside#наука#человек#бег
Outside: как потерпевшие кораблекрушение люди 10 дней выживали в открытом море
25 ноября 2019 года Крис Карни и его команда из двух человек отправились в в путешествие на парусной лодке с мотором из Японии в Гавайи. Крис и товарищи были опытными моряками, а лодка - вполне современной. Но море может преподнести любые сюрпризы, и в результате сильного шторма люди оказались на весьма потрёпанном прироой судне посреди огромного океана, без связи, с минимумом воды и еды, почти без надежды. Им уалось выжить Крис считает, что главными помощниками в беде стали разум и хладнокровие. Его история - в сегодняшнем материале.
«Очень повезло, что судно выдержало. Если бы у нас была пролом, лодка затонула бы примерно через 30 секунд. Нам было холодно, всё промокло. Ни сухой одежды, ни сухих кроватей. Мы сидели на голодном пайке, вроде пяти миндальных орехов в день. Ограничив то немногое количество воды и еды, которое у нас осталось, мы решили, что сможем прожить 40 или 50 дней. Раньше я никогда не сталкивался со смертью лицом к лицу. Все знают, что они умрут. Но никому не приходит в голову думать о том, что смерть наступит через 50 дней».
https://theidealist.ru/shipwreck/
#Outside#человек#море#кораблекрушение#выживание
Ура. Я дома, я на связи!
В ближайшее время всем отвечу☺️
Имеретинские были прекрасны, по всем связанным вопросам с маршрутом пишите в личку.
Из нового подвернул ногу и теперь снова длительное восстановление ☹️
#mountain#lake#outdoor#outside#caucasus
#alpina#buff
Уже в начале июня мы возвращаемся в Красную Поляну и есть свободные дни для походов по маршрутам одного дня, и поездок в Абхазию.
А так же уже можно бронировать многодневные туры, места есть и разлетаются как горячие пирожки.
И да мы готовы организовать поход под запрос и даты которые вам удобны🙏🏻
#походы#туризм#горы#кавказскийзаповедник#mountain#outdoor#outside#trekking
Одним днём в Норвегию смотался😍
Как вам видео?
#mountain#mountainhome#outside#outdoor#adventurelife#wildrussia#wildlife#adventure#explore#summervibe#vibes
Все любители комфорта были услышаны! На Розе Хутор построили крутой, комфортный кемпинг. А не вот эти вот ваши палатки, спальники, котелки, горелки.
Уже 1 июля открывается высокогорный кемпинг Нахазо. Где можно будет провести время на природе, оторваться от работы и получить максимальный заряд. Я думаю, что каждый любит те моменты, когда: неспешно просыпаешь, завтракаешь, проводишь время с самим собой или семьей, друзьями! А также гуляешь, кушаешь, сидишь на краю горы перед крутым спуском и впитываешь горные красоты. Отключаешь голову, расслабляешься и начинаешь просто получать удовольствие от жизни.
Моя жена @kristin044ka была там недавно и осталась в полном восторге. Говорит, что подобного нет нигде в России. Я вот уже горю желанием посмотреть на это место, а вы?
@kirillumrikhin📸
@rosakhutor
#rosakhutor#mountainresort#mountainhotels#mountaincamping#mountain#landscape#outdoor#outside#trekking#hikking#caucasus
Как сэкономить на снаряжении, и когда лучше взять в аренду?
Сейчас покупать снаряжение для активного отдыха стало довольно накладно. А если вы занимаетесь сноубордом/лыжами, туризмом, велосипедом и т.д. - то встаёт ещё вопрос и хранения 🙈
Но вместо того, чтобы грустить, рассмотрим лайфхаки.
Сейчас реально выгодно брать снарягу в аренду, т.к. покупать новое может быть накладно. Особенно, рекомендую аренду, когда вы первый раз идёте в поход или пробуете катание на сноуборде - есть возможность оценить снаряжение, чтобы получить понимание: а нужно ли вам ходить в горы в будущем? И если нужно - какой именно рюкзак, палатку, спальник - вы хотите купить, дабы не переплачивать и не жалеть о покупке.
Поэтому я всё чаще стал рекомендовать пользоваться отличным сервисом аренды снаряжения от @kant_sport в Москве. Это удобно, т.к можно гарантировано взять качественное, чистое снаряжение за разумные деньги. К тому же сейчас в прокате доступно 150 позиций от ледорубов, спальников до велосипедов с лонгбордами. Круто, не правда ли?
Ну и наконец, даже сейчас можно купить снаряжение за отличную цену, а также использовать промокод на скидку. Напомню, что для покупателей магазина @kant_sport у меня есть промокод, он действует в магазине и сервисе. Пользуясь моим промокодом вы поддерживаете меня. Пиши в Direct, поделюсь скидкой)
#rent#outdoor#outside#sportislife#большеспортаярчежизнь#кантспорт#прокат#арендаснаряжения
#snowboard#bike#bicycle#sup#rafting#skate#alpinism#ski