Функция 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
#TGT
Ещё один донат был.
👆 Тут пока происходит распределение в четвертой волне (на мой взгляд конечно - точно никто не знает). Потоки цикличные и пока выглядят непривлекательно с точки зрения роста, но оценка очень низкая - в районе Р/Е=10 и P/S=0,4 = это предполагает отскок при любом улучшении потока или сентимента - жду окончания волны-А плоскости 4-й волны.
#TGT
🔴Компания Target Corporation опубликовала финансовый отчёт за третий квартал 2024 года, который не оправдал ожиданий аналитиков, что привело к значительному снижению цены акций на 20%.
✅ Выручка составила $25,67 млрд, что ниже прогнозируемых $25,89 млрд.
✅ Прибыль на акцию (EPS) составила $1,85 на акцию, что значительно ниже ожидаемых $2,30.
✅ Сопоставимые продажи: Выросли на 0,3%, что ниже ожиданий аналитиков.
👉 Руководство Target пересмотрело прогноз по прибыли на весь год, ожидая скорректированную прибыль на акцию в диапазоне от $8,30 до $8,90, что ниже предыдущего прогноза.
Основные причины снижения показателей:
🔴Снижение потребительского спроса: Покупатели стали более осторожными в расходах на необязательные товары, такие как одежда и товары для дома.
🔴Рост затрат: Увеличение расходов на логистику и управление запасами негативно сказалось на марже прибыли.
🔴Внешние факторы: Краткосрочная забастовка портовых рабочих и неблагоприятные погодные условия также повлияли на операционные результаты.
Компания планирует продолжать снижать цены и вводить новые товары, чтобы привлечь покупателей, особенно в преддверии праздничного сезона.
❓ Что думаете по ней? Я пока не решился брать из-за плохих финансовых показателей, но технически сейчас выглядит хорошо на подбор 🤷♂️👇