Функция 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
🌞ОНО ВОЗВРАЩАЕТСЯ ?!
Похоже, гигантское солнечное пятно AR3590, в прошлом месяце ставшее не только крупнейшим в текущем солнечном цикле, но и породившее мощнейшиевспышки класса X, вот-вот вернётся.
Последние 2 недели оно располагалось не обратной стороне Солнца, но Марсоход "Perseverance" исправно отслеживал ситуацию: с 1 по 9 мар. пятно, сохраняя свой размер, выглядело не распадающимся, но вполне здоровым.
Если так пойдёт и дальше, оно вновь, уже во второй раз появится из-за восточного лимба Солнца около 14 мар.
Фото: Солнце с гигантским пятном AR3590 на снимках марсохода "Perseverance", сделанных с 1 по 9 мар.
#sunspot#Perseverance
Марсоход NASA Perseverance впервые получил возможность сам точно определять своё местоположение на Марсе. Раньше он ориентировался по камерам и оборотам колёс, что давало ошибки до 30 метров. Такая неточность была опасна при движении по пересечённой местности. Новая система снижает погрешность до примерно 25 см.
#perseverance#nasa#навигация
📎Подробнее
Марсоход Perseverance сейчас изучает дельту древней реки в кратере Езеро на Марсе. У него есть георадар, который «просвечивает» грунт на глубину до 35 метров. Когда учёные собрали все данные радара воедино, оказалось, что под поверхностью скрывается ещё одна, более древняя и мощная речная дельта. На её фоне нынешние следы рек на поверхности выглядят просто тонким налётом истории.
#perseverance#жизньнамарсе#nasa
📎Подробнее
🔖 3DNews в Telegram | MAX | VK
🪐 Scientists have discovered that Mars’ Jezero Crater once held an ancient lake, where water persisted long enough to form river deltas and deposit clay minerals—materials that can preserve signs of life for billions of years. The Perseverance rover is now exploring this region, searching for tiny fossilized microbes that may have thrived in Mars' watery past. ✨
#Mars⚡#Perseverance⚡#astrobiology⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
От "Луны-16" до текущих дней: как ИИ стал ключевым членом космических экипажей 🚀🧠
Ровно 55 лет назад, 24 сентября 1970 года, случилось знаковое событие, которое наглядно доказало: роботы способны на самостоятельные космические миссии. Советская станция «Луна-16» впервые в истории в автоматическом режиме доставила на Землю образцы лунного грунта. Это был триумф инженерной мысли и прообраз будущего! 🌍➡️🌕
Тогда это была продвинутая автоматика, запрограммированная на строгий алгоритм действий. Но идея была гениальной: поручить сложнейшую задачу автомату, заложив фундамент для роботизированного освоения космоса.
Сегодня эту концепцию вывели на принципиально новый уровень благодаря искусственному интеллекту. Современные марсоходы, такие как Perseverance, — это уже не просто исполнители команд с Земли. Они — автономные ученые:
➡️Самостоятельно прокладывают путь, объезжая камни и опасные участки, экономя драгоценное время на связь с Землей.
➡️Анализируют породы с помощью встроенных спектрометров, выбирая самые интересные образцы для дальнейшего изучения.
➡️«Мыслят» на месте, принимая сотни микрорешений за один сол (марсианские сутки).
Эволюция налицо: от жесткой автоматики «Луны-16» к гибкому, адаптивному интеллекту современных роботов-исследователей. ИИ стал тем самым «следующим пилотом», который позволяет нам изучать миры на расстоянии десятков миллионов километров с невероятной эффективностью.
Что ждет нас дальше? ИИ будет критически важен для:
➡️Строительства автономных баз на Луне и Марсе.
➡️Поиска следов жизни в подледных океанах Европы или Энцелада.
➡️Управления сложными орбитальными станциями и звездолетами будущего.
Рекомендую вспомнить посты ранее:
➡️ИИ строит мост к Марсу: как роботы Optimus проложат путь человечеству?
➡️Человек слаб, ИИ — неуязвим.
Как это поможет на Марсе?
А как вы думаете, какая следующая крупная космическая задача будет полностью доверена искусственному интеллекту?
Или без человека никуда?
Делитесь мнениями в комментариях! 👇
#ИИвКосмосе#Космонавтика#Луна16#Perseverance#ИскусственныйИнтеллект#Нейросети#Будущее#Наука#Марс#Робототехника
https://t.me/semasci