Я столкнулся с проблемой создания пустых словарей в словарях при использовании fromkeys()
; все они связаны с одним и тем же.Использование dict.fromkeys(), присваивает каждому значению пустой словарь
Вот краткий фрагмент кода, чтобы продемонстрировать, что я имею в виду:
a = dict.fromkeys(range(3), {})
for key in a:
a[key][0] = key
Выход я хочу, как a[0][0]=0, a[1][0]=1, a[2][0]=2
, но все они равны 2
, так как это редактирование того же dictionarionary 3 раза
Если Я должен был определить словарь как a = {0: {}, 1: {}, 2: {}}
, он работает, но это не очень практично, если вам нужно построить его из большего списка.
С fromkeys, я попытался {}
, dict()
, dict.copy()
и b={}; b.copy()
, как бы я идти об этом?
Вместо словаря, проиндексированного целым числом, почему бы и нет списка? – jonrsharpe
Это, честно говоря, не перешло мне в голову, и я, вероятно, мог бы сделать, чтобы быть справедливым ха-ха, хотя для этого потребуется 8 строк вместо 2, поэтому выглядит немного менее аккуратно – Peter
'a = [[i] для i в диапазоне (3)] '? – jonrsharpe