代码之家  ›  专栏  ›  技术社区  ›  gwydion93

用另一个字典中的键替换一个字典中的键

  •  1
  • gwydion93  · 技术社区  · 6 年前

    假设我有两本字典:

    第1章:

    statedict = {'Alaska': '02', 'Alabama': '01', 'Arkansas': '05', 'Arizona': '04', 'California':'06', 'Colorado': '08', 'Connecticut': '09','DistrictOfColumbia': '11', 'Delaware': '10', 'Florida': '12', 'Georgia': '13', 'Hawaii': '15', 'Iowa': '19', 'Idaho': '16', 'Illinois': '17', 'Indiana': '18', 'Kansas': '20', 'Kentucky': '21', 'Louisiana': '22', 'Massachusetts': '25', 'Maryland': '24', 'Maine': '23', 'Michigan': '26', 'Minnesota': '27', 'Missouri': '29', 'Mississippi': '28', 'Montana': '30', 'NorthCarolina': '37', 'NorthDakota': '38', 'Nebraska': '31', 'NewHampshire': '33', 'NewJersey': '34', 'NewMexico': '35', 'Nevada': '32', 'NewYork': '36', 'Ohio': '39', 'Oklahoma': '40', 'Oregon': '41', 'Pennsylvania': '42', 'PuertoRico': '72', 'RhodeIsland': '44', 'SouthCarolina': '45', 'SouthDakota': '46', 'Tennessee': '47', 'Texas': '48', 'Utah': '49', 'Virginia': '51', 'Vermont': '50', 'Washington': '53', 'Wisconsin': '55', 'WestVirginia': '54', 'Wyoming': '56'}
    

    第2章:

    master_dict = {'01': ['01034','01112'], '06': ['06245', '06025, ''06007'], '13': ['13145']}
    

    *实际 master_dict 要长得多。 基本上,我想替换2位数 keys 在里面 马斯特里克迪特 用长名称键输入 statedict . 我该怎么做?我试着用下面的方法,但不太管用。

    for k, v in master_dict.items():
        for state, fip in statedict.items():
            if k == fip:
            master_dict[k] = statedict[state]
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   ggorlen Hoàng Huy Khánh    6 年前

    您可以使用字典理解将值映射到键。第二个字典理解执行查找以用单词替换数字:

    lookup = {v: k for k, v in statedict.items()}
    result = {lookup[k]: v for k, v in master_dict.items()}
    print(result)
    

    输出:

    {'Alabama': ['01034', '01112'], 
     'California': ['06245', '06025, 06007'], 
     'Georgia': ['13145']}
    

    试试看 here

    推荐文章