#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))))