Функция 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
#material
Высота по оси z в Material Design.
1. Навигационное меню — 16dp;
2. Панель приложения — 4dp;
3. Карточки — от 1dp к 8dp при нажатии;
4. FAB — 6dp;
5. Кнопка — от 2dp к 8dp при нажатии;
6. Диалоговое окно — 24dp.
Подробнее
😄Material
➖➖➖➖➖➖
🔘Material is what things are made from.
🔜 What material is this table? It's wood.
🔘Material can also be another word for cloth.
🔜 Can you make a dress using this material?
🔘Material is information used in writing as well, often for promotional purposes.
🔜 Take this material and write an article using it. It's interviews about living in the UK.
#Material👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
😄Material
➖➖➖➖➖➖
🔘Material is what things are made from.
🔜 What material is this table? It's wood.
🔘Material can also be another word for cloth.
🔜 Can you make a dress using this material?
🔘Material is information used in writing as well, often for promotional purposes.
🔜 Take this material and write an article using it. It's interviews about living in the UK.
#Material👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
В Material Component for Android 1.13.0 (пока в альфе) добавили новые виджеты на View системе:
👉Docked Toolbar
👉Floating Toolbar
👉Split Button
#android#material
Material Design 3 Expressive красив только на картинках от дизайнеров. По сути своей сделали гигантизм, из-за чего приходится на маленьких экранах уводить в более мелкие элементы интерфейса (через настройки плотности). Переводы и размещение текста оставляют желать лучшего. Как по мне - худший редизайн Android за всю историю.
Успели попробовать? Какие ваши впечатления?
#material#ui
Yaqinda Google rasman oʻzining Material 3 Expressive dizayn tizimini taqdim etdi
Ushbu tizimda ular yorqin ranglar, jonli tipografiya va animatsiyalarga urgʻu berishdi.
Tizim ustida uch yil davomida ish olib borildi, 18 000 nafar inson ishtirokida 46 ta tadqiqot oʻtkazildi.
Batafsil: https://m3.material.io/
Aytishlaricha, Android 16 (Beta)da bu yangilanishni koʻrishimiz mumkin ekan. Sizga yangi dizayn tizimi yoqdimi?
@suxrobblog // #google#material
🚀Вышел Jetpack WindowManager 1.4 - библиотека с API для построения адаптивного UI в Material3 (можно применить и к другим UI Kit): WindowSizeClass, Activity embedding, WindowsInfoTracker и др.
Про изменения отдельными постами дальше
#jetpack#ui#material
📹Building adaptive Android apps (40 минут)
Очень классное видео про то как подходить к разработке приложений без привязки к экрану, а думать именно в терминах пространства для отрисовки
0:00 Введение
4:15 Зачем создавать адаптивные интерфейсы?
7:49 Адаптивность в Compose Material 3
13:01 Создание UI с Compose Material 3 Adaptive
22:07 Положения складных устройств
23:32 Анти-паттерны
26:52 Ввод, выходящий за рамки сенсорного управления
30:36 Тестирование на разных устройствах
36:17 Адаптивный рабочий процесс
39:29 Обратная связь и заключительные замечания
#android#material#большикэкраны