Для новых версий Python вы можете создать новый словарь с dict()
+ zip()
:
dict(zip(dic, mylist))
# {'Bag': 0.2577, 'Door': 0.2311, 'Duck': 0.6393, 'Car': 0.159, 'Girl': 0.6135}
Или обновить словарь вplace:
for k, v in zip(dic, mylist):
dic[k] = v
print(dic)
# {'Bag': 0.2577, 'Door': 0.2311, 'Duck': 0.6393, 'Car': 0.159, 'Girl': 0.6135}
Но это предполагает упорядоченные словари для Python3.6 + .Если вы используете более низкие версии, в которых есть неупорядоченные словари , вы можете использовать collections.OrderedDict
, чтобы запомнить порядок вставки ключей.
Пример OrderedDict:
from collections import OrderedDict
mylist = [0.2577, 0.2311, 0.6393, 0.159, 0.6135]
items = ['Bag', 'Door', 'Duck', 'Car', 'Girl']
d = OrderedDict(zip(items, mylist))
print(d)
# OrderedDict([('Bag', 0.2577), ('Door', 0.2311), ('Duck', 0.6393), ('Car', 0.159), ('Girl', 0.6135)])
Вы также можете комбинировать приведенные выше примеры только для использования списков, которые упорядочены :
mylist = [0.2577, 0.2311, 0.6393, 0.159, 0.6135]
items = ['Bag', 'Door', 'Duck', 'Car', 'Girl']
d = dict(zip(items, mylist))
print(d)
# {'Bag': 0.2577, 'Door': 0.2311, 'Duck': 0.6393, 'Car': 0.159, 'Girl': 0.6135}
и является наиболее простым решением вашей проблемы, поскольку он создает словарь напрямую.