Замена ключа из одного словаря на ключ из другого - PullRequest
0 голосов
/ 25 сентября 2018

Предположим, у меня есть 2 словаря:

Dict # 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'}

Dict # 2:

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

* Фактический master_dict намного длиннее,По сути, я хочу заменить двузначную цифру keys в master_dict ключами длинного имени в statedict.Как мне это сделать?Я пытаюсь использовать следующее, но это не совсем работает.

for k, v in master_dict.items():
    for state, fip in statedict.items():
        if k == fip:
        master_dict[k] = statedict[state]

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете использовать словарь, чтобы составить таблицу соответствия значений клавишам.Второе понимание словаря выполняет поиск, чтобы заменить числа словами:

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']}

Попробуйте здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...