第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 regex 和 defaultdict 創(chuàng)建帶有列表的字典

如何使用 regex 和 defaultdict 創(chuàng)建帶有列表的字典

茅侃侃 2022-06-22 17:18:00
字典如下my = [{'Name':'Super', 'Gender':'Male', 'UNNO':111234},      {'Name':'Spider', 'Gender':'Male', 'UNNO':11123},      {'Name':'Bat', 'Gender':'Female', 'UNNO':113456},     {'Name':'pand', 'Gender':'Female', 'UNNO':13456}]唯一編號是每個字典的鍵“UNNO”的值。所有 UNNO 編號必須包含 6 位數(shù)字。UNNO 編號從 11 開始僅有效預(yù)計出局my_dict_list = {'Male':['Super'], 'Female':['Bat']}沒有正則表達(dá)式的原始代碼d = {}for i in my:    if str(i['UNNO']).startswith('11') and len(str(i['UNNO'])) == 6:        # To get {'Male':['Super'], 'Female':['Bat']}        d[i['Gender']] = [i['Name']]如何借助regex寫,寫正則表達(dá)式,如何借助defaultdict完成import refrom collections import defaultdict# regular expressionrx = re.compile(r'^(?=\d{6}$)(?P<Male>11\d+)|(?P<Female>11\d+)')# output dictoutput = defaultdict(list)
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗 獲得超5個贊

要使用正則表達(dá)式匹配來解決您的問題 - 使用以下方法:


import re

from collections import defaultdict


my_list = [{'Name': 'Super', 'Gender': 'Male', 'UNNO': 111234},

           {'Name': 'Spider', 'Gender': 'Male', 'UNNO': 11123},

           {'Name': 'Bat', 'Gender': 'Female', 'UNNO': 113456},

           {'Name': 'pand', 'Gender': 'Female', 'UNNO': 13456}]


genders = defaultdict(list)

pat = re.compile(r'^11\d{4}$')  # crucial pattern to validate `UNNO` number


for d in my_list:

    if pat.search(str(d['UNNO'])):

        genders[d['Gender']].append(d['Name'])


print(dict(genders))   # {'Male': ['Super'], 'Female': ['Bat']}


查看完整回答
反對 回復(fù) 2022-06-22
  • 1 回答
  • 0 關(guān)注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號