Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> text = '''
>>> Alex:8999123456
>>> Mike:+799987654
>>> Oleg:+344456789
>>> '''
Соответственно, для выделения нужных элементов будем использовать группы. Получится такой паттерн:
(\w+):([\d+]+)
Как мы будем формировать словарь из найденных групп?
>>> import re
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append({
>>> "name": match.group(1),
>>> "phone": match.group(2)
>>> })
>>> print(results)
[{'name': 'Alex', 'phone': '8999123456'}, ...]
Можно немного сократить запись используя zip
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append(dict(zip(['name', 'phone'], match.groups())))
Но есть способ лучше! Это именованные группы в regex. Можно в паттерне указать имя группы и результат сразу забрать в виде словаря.
>>> for match in re.finditer(r"(?P<name>\w+):(?P<phone>[\d+]+)", text):
>>> results.append(match.groupdict())
То есть всё что я сделал, это добавил в начале группы (внутри сбокочек) такую запись:
(?P<group-name>...)
Теперь найденная группа имеет имя и можно обратиться к ней как к элементу списка
>>> name = match['name']
Либо забрать сразу весь словарь методом groupdict()
>>> match.groupdict()
#tricks#regex
Chap tarafdagi matn yozilish tartibi biroz buzilgan. Bu yerda Ikki so'zdan iborat matn ikki qator yozilgan va oraliq masofasi keyngi qatordagi matn bilan bir hil masofada. bu holatda matnni biz Kompyuter va savodxonlik so'zlariga bo'lib o'qiymiz.
#redizayn
SoliqUz dasturining xizmatlar sahifasining redizayni
— Rangli ikonkalar ishlatilingan, keyinchalik ikonkalar ustida ishlash uchun AI dizayner bilan ishlab, rivojlantirib borsa ham bo'ladi.
— Dasturdan keksalar foydalanishini ham inobatga olinishi kerak edi, lekin o'ylab qaralsa, yoshi katta kishilarni aynan o'zlari dasturdan foydalanish ehtimoli past, ularga yoshlar ko'maklashi mumkin. Zamon rivojlanib bormoqda biz ham moslashib borishimiz ham lozim...
Quyida suratning sifatli faylini ham yuborib qo'yaman. Fikrlaringiz bilan bo'lishishingiz mumkin)
@suxrobblog
#soliquz#redizayn#fikrlar
"SoliqUz" dasturini redizayn qilishga kirishdim. Sizlarning ham fikrlaringiz muhim, bu dasturdan deyarli foydalanmayman, shu sababli, eng muhim, kerakli boʻlimlarni izohlarda yozib ketsangiz boʻladi)
Bundan tashqari, "Bottom Navigation Bar"ni nomlab chiqmoqchiman, nega deganda, ikonkani oʻzi bilan foydalanuvchilarga sahifa boʻyicha maʼlumotni yetkaza olmasligi mumkin.
Nomlash boʻyicha misol variantlar: — "Asosiy", "Mening sahifam" yoki "Profilim", "Monitoring", "Xizmatlar"...
@suxrobblog
#soliquz#redizayn#fikrlar
PDP Online redizayni
— Avvalgi yil boshlarida asosan shaxsiy brendlar bilan ishlovchi "DZYN Group" bilan hamkorlikda bir necha loyihalarda hamkorlik qilgan edim.
O'sha vaqtida PDP Online saytini redizayn qilishni shu dizayn agentligiga topshirishgan edi. Men esa agentlik bilan hamkorlikda saytni redizayn qilib bergan edim...
— Dizaynni qisman, qisqa vaqt ichida "vizual" presentatsiya qilib, behance'ga joylab qo'ydim.Yechimlar va muammolarni yoritib ketmadim)
📱 Behance'da taqdimotni ko'rish
#redizayn#keys#behance
@suxrobblog