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

Резултати

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

Пребарај: #gansu

当前筛选 #gansu清除筛选
🎺星空瞭望

@panguliaowang · Post #17163 · 23.03.2020 г., 02:20

#疫情通报#China#中共国 【#全国 新增确诊 103 例,累计确诊 81601 例,新增出院 459 例,累计出院 72841 例,新增病亡 9 例,累计病亡 3276 例,现存确诊 5484 例,现存重症 1749 例,新增疑似 47 例,现存疑似 136 例,现存医观 10701 例】(中国的数据含港澳台) #湖北#Hubei 新增病亡 9 例(武汉 9 例),新增出院 447 例,现存确诊 4768 例,现存重症 1714 例 #上海#Shanghai 新增境外输入确诊 10 例 #北京#Beijing 新增境外输入确诊 10 例 #广东#Guangdong 新增境外输入确诊 6 例 #福建#Fujian 新增境外输入确诊 4 例 #山东#Shandong 新增境外输入确诊 2 例 #甘肃#Gansu 新增境外输入确诊 2 例 #河南#Hebei 新增境外输入确诊 1 例 #浙江#Zhejiang 新增境外输入确诊 1 例 #重庆#Chongqing 新增境外输入确诊 1 例 #台湾#Taiwan 新增确诊 16 例 #香港#Hongkong 新增确诊 44 例 #澳门#Macao 新增确诊 3 例 (国家卫健委)(湖北卫健委)(北京卫健委)(上海卫健委)(广东卫健委)(福建卫健委)(甘肃卫健委)(山东卫健委)(河南卫健委)(浙江卫健委)(重庆卫健委)(台湾 CDC)(香港政府新闻网)(澳门政府网)