Я хочу добавить новые элементы в словарь в цикле for , но он заменяется. Я добавляю это так:
for j in range(len(Repetidos)):
historias[m[j]]=Repetidos[j]
Это нормально, как я это делаю? так как в итоге мне выкидывает только один элемент на каждый ключ словаря, идея в том, что каждый ключ содержит несколько элементов. Или это должно быть сделано с помощью «добавить»
Ваше здоровье!
Делая это, вы заменяете (переназначаете) значение ключа на каждой итерации, поэтому в конце у вас будет только последнее значение, соответствующее :
m[len(repetidos)-1]
.Чтобы добавить новые значения, вам нужно будет использовать список в качестве значения и использовать
append
, как вы говорите:Если вы сделаете это, вы должны определить ранее пустой список как значение для каждого ключа в словаре. Вы должны сделать это только один раз и перед добавлением любого значения в список:
Более удобный вариант — использовать
collections.defaultdict
. Когда вы создаете истории, вы делаете это следующим образом:Теперь каждый раз, когда вы создаете новый ключ, в качестве значения автоматически создается пустой список. Поэтому вам не нужно беспокоиться об использовании метода
append
в несуществующем списке.