TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #65 · 8 апр.

Небольшой трик с регулярными выражениями который редко вижу в чужом коде. Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста. >>> 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

Резултати

Пронајдени 2 слични објави

Пребарај: #nevermind

当前筛选 #nevermind清除筛选

#转发#NeverMind#UnihertzTitanSlim https://www.kickstarter.com/projects/jellyphone/titan-slim-the-new-sleek-and-slim-qwerty-android-smartphone/description 最终我还是选择不考虑Titan Slim。 虽然键盘进一步进化,内部存储容量翻倍,摄像头也不是祖传16MP,但砍掉耳机孔,砍掉SD卡扩展,这么大机身也不做无线充电这件事对我来说是不可接受的。 更何况SoC和Titan Pocket是完全一样的联发科P70,电池也就比Pocket多了可有可无的100mAh。这么大机身这么不“slim”的厚度,为啥就不能塞下无线充电或者更大的电池? 而且这次也不是主打高防护性,直接变玻璃后盖了,这摔一下肯定很完蛋,不套壳不能用的程度。 这一次,我跳车了。希望下次能有更合理的产品。