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

Резултати

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

Пребарај: #unihertztitanslim

当前筛选 #unihertztitanslim清除筛选

#转发#WantThis#UnihertzTitanSlim 为啥知道这机器叫Titan Slim呢? 因为在日本那边的技术认证暴露了一切... https://www.tele.soumu.go.jp/giteki/SearchServlet?pageID=jk01&NUM=&NAM=&FOM=Titan+Slim&PC=&YAR_FROM=&MON_FROM=&DAY_FROM=&YAR_TO=&MON_TO=&DAY_TO=&RAD=00-00-00-00&TEC=1&TEC=2&TEC=3&TEC=4&TEC=5&TEC=6&TEC=7&SK=0&DC=0&SC=1&as_fid=17de57877f1651f7a960d1e9a08b21ead64c9d95#searchlist

#转发#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”的厚度,为啥就不能塞下无线充电或者更大的电池? 而且这次也不是主打高防护性,直接变玻璃后盖了,这摔一下肯定很完蛋,不套壳不能用的程度。 这一次,我跳车了。希望下次能有更合理的产品。