Создать словарь на основе двух списков
Проблема заключается в том, чтобы создать новый словарь на основе данных массива целых чисел и другого словаря. Новый словарь должен отображать список городов, которых посетил коммивояжер.
Для данных [2, 4, 5, 6, 3, 1, 2] это должно выглядеть так ['Zhytomyr', 'Poltava', 'Chernihiv', 'Lviv', 'Vinnitsa', 'Kiev', 'Zhytomyr']
Мой код:
import numpy as np
arr = np.array([2, 4, 5, 6, 3, 1, 2])
items= {}
items = dict()
cities = {
"Kyiv": 1,
"Zhytomyr" : 2,
"Vinnitsa" : 3,
"Poltava" : 4,
"Chernihiv" : 5,
"Lviv" : 6,
}
print(arr)
dictkeys = list (cities.keys())
print("List of keys in Dictionary : ", dictkeys)
print(cities)
for i in arr:
dictKey = cities.get(i)
items[dictKey].append(i)
dictkeys2 = list (items.keys())
print("List of keys in Dictionary : ", dictkeys2)
Результат кода должен быть таким:
У меня возникает ошибка:
Как ee исправить?
Ответы (1 шт):
Автор решения: splash58
→ Ссылка
Переверните словарь, и все станет просто
dictkeys = {y:x for x,y in cities.items()}
print(dictkeys)
# {1: 'Kyiv', 2: 'Zhytomyr', 3: 'Vinnitsa', 4: 'Poltava', 5: 'Chernihiv', 6: 'Lviv'}
dictkeys2 = [dictkeys.get(i) for i in arr ]
print("List of keys in Dictionary : ", dictkeys2)
# List of keys in Dictionary : ['Zhytomyr', 'Poltava', 'Chernihiv', 'Lviv', 'Vinnitsa', 'Kyiv', 'Zhytomyr']

