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

Резултати

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

Пребарај: #and

当前筛选 #and清除筛选
The Idealist

@theidealist · Post #1999 · 26.02.2020 г., 15:14

​​ADN: слишком много американцев никогда не смогут выйти на пенсию Старение населения - глобальная проблема развитых стран, означающая не только изменение рынка труда, но и дополнительную нагрузку на социальную сферу. Государства решают её по-разному: кто-то создаёт льготы для работающих пенсионеров, другие считают, что надо стимулировать миграцию. Соединённые штаты сегодня стоят перед сложным выбором: смягчить миграционную политику, которую ужесточил Дональд Трамп, что позволить "удешевить" уход за детьми (бэбиситтинг - популярная форма занятости для мигрантов в этой стране), или же пойти по японскому пути и обеспечить пожилых возможностью больше зарабатывать. Одно пугает: второй путь означает, что некоторым старикам придётся работать буквально до смерти. А значит о "золотом возрасте" придётся забыть. "Меньшее количество детей означает, в конечном итоге, меньше число молодых работников для поддержки растущего числа пенсионеров. Это приведет к тому, что в системы социального обеспечения и медицинской помощи будет выплачиваться меньше денег, что потребует либо сокращения пособий, либо повышения пенсионного возраста (В США пенсионный возраст определяется по году рождения: для людей, родившихся до 1960 года (и мужчины, и женщины), — 66 лет, для людей, рожденных в 1960 году и позже, — 67 лет), либо приведёт к постоянному росту дефицита. Опыт прошлого показывает, что американцам просто предложат работать дольше". https://theidealist.ru/usretire/ #AND#общество#экономика#пенсии#рождаемость#США#Япония#деньги#дети

12
ПретходнаСтраница 1 од 2Следна