изменять значения нескольких ключей одновременно в словаре Python

#python #dictionary

#python #словарь

Вопрос:

Можно ли изменить значения нескольких ключей одновременно без цикла?

 d = {1: 0, 2: 0, 3: 0}
for k in [1,2]:
    d[k]  = 1

  

Комментарии:

1. можете ли вы добавить пример того, как вы хотите обновить?

2. Также, пожалуйста, определите, что означает «без цикла». Без цикла в Python? без цикла в базовой реализации? d[1] =1;d[2] =2 Был бы ответ?

Ответ №1:

Если все, что вы хотите сделать, это заменить значения, то вы можете использовать dict.update :

 d = {1:0, 2:0, 3:0}
d.update({1:1, 2:1})
# {1: 1, 2: 1, 3: 0}
  

но, насколько я знаю, нет способа внести пользовательские изменения без использования какого-либо цикла. Вы могли бы использовать понимание списка, чтобы создать новый dict для отправки .update() , делая все это в одной строке:

 d.update({k: d[k]   1 for k in [1, 2]})
  

но я не думаю, что существует общее решение для изменения dict на месте таким образом.

Ответ №2:

Вы должны иметь возможность использовать метод обновления словаря, просто включите ключи, которые вы хотите обновить, и значения, которые вы хотите, чтобы они имели.

 mydict.update(dict(zip(keys, mytupleValues))))