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

Резултати

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

Пребарај: #yeswecanendtb

当前筛选 #yeswecanendtb清除筛选

Jangkitan TB Laten (LTBI) merupakan keadaan tindak balas sistem imun badan yang berterusan terhadap rangsangan antigen Mycobacterium Tuberculosis tanpa ada bukti klinikal TB aktif. Antara ujian yang boleh dilakukan untuk mengesan LTBI adalah ujian X-ray dada, ujian kulit tuberkulin (TST) atau ujian serologi IGRA. Penghidap TB Laten tidak mempunyai gejala TB, sentiasa berasa sihat dan tidak menjangkiti orang lain namun boleh menjadi TB jika tidak dirawat. #ANMS#KekalSihat#YesWeCanEndTB#sihatmilikku Sumber: Bahagian Pendidikan Kesihatan, KKM t.me/sihatmilikbersama

5% - 10% kontak Tibi berisiko mendapat Tibi dalam tempoh 2 tahun. Pemeriksaan kontak membolehkan diagnosa dan rawatan awal diberikan. Jika disahkan dijangkiti Tibi, rawatan akan diberi selama 6 bulan. #ANMS#KekalSihat#YesWeCanEndTB#sihatmilikku Sumber: Bahagian Pendidikan Kesihatan, KKM t.me/sihatmilikbersama

Today is #WorldTuberculosisDay We join hands together with the National Tuberculosis and Leprosy Control Programme, the Federal Ministry of Health Nigeria, and others to declare that #YesWeCanEndTB in Nigeria. Tuberculosis is preventable and treatable. Dial *3340# for more information on #TB. #StrongerTogether