Обновить значения dict значениями в списке - PullRequest
1 голос
/ 17 октября 2019

У меня есть словарь, который я хочу обновить:

my_dict = {"a":"A", "b":"B"}

и список с точно такой же длиной:

my_list = ["D", "E"]

Я хотел бы найти наиболее эффективный способ обновленияmy_dict со значениями от my_list до:

{"a":"D", "b":"E"}

без необходимости запуска нескольких циклов или аналогичных. Я пытался сделать это с помощью списочных представлений, но он не позволяет использовать несколько утверждений:

{my_dict_key:list_item for my_dict_key in my_dict.keys(), list_item in my_list}

Ответы [ 3 ]

7 голосов
/ 17 октября 2019

Используйте zip() со словарным пониманием:

{key: value for key, value in zip(my_dict, my_list)}

Или просто:

dict(zip(my_dict, my_list))
0 голосов
/ 17 октября 2019

Может быть, это поможет

  1. Сначала найдите ключи по
    keys=dic.keys()
Затем обновите свой словарь элементами списка
    for i in range(len(lis)):
        dic[keys[i]]=lis[i] 

3. Словарь будет обновлен.

0 голосов
/ 17 октября 2019

Если вы знаете, что порядок ваших диктов совпадает со списком, вы можете использовать дальний цикл для прохождения каждой клавиши.

for i, key in enumerate(dic):
  dic[key] = lis[i]

Демо

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