как добавить значение в словарь, когда значение является списком списков в python

#python #list #dictionary

#python #Список #словарь

Вопрос:

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

вот пример того, что я пробовал:

 dict={}

dict[x]=[[f,g],[y,e,j]...]
# i tried this:
dict[x] = [l,k,n]

dict[x].append([l,k,n])

#i expected this:

dict[x] = [[f,g],[y,e,j], ... ,[l,k,n]]
  

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

1. Разве append() версия не делает именно то, что вы хотите?

2. Примечание: dict это не идеальное имя, которое вы должны выбрать для переменной. Позже вы столкнетесь с проблемами. Это встроенная функция.

3. Это не помешало бы append() версии здесь делать то, что хочет OP.

4.Так что же сделал dict[x].append([l,k,n]) , если не то, что вы ожидали?

5. На самом деле это работает сейчас, я не знаю, что происходило раньше, возможно, опечатка. Извините.

Ответ №1:

Кажется, у меня это работает:

 a = [1,2,3]
b = [4,5,6]
d = {}
d['ab'] = [a, b]
d['ab'].append([7,8,9])
  

Обратите внимание, что d['ab'] = [0,0,0] (в качестве примера) делает extend вместо append . Если вы хотите использовать = , вам следует обернуть значение в список. например:

 d['ab']  = [[0,0,0]]