由于附加到列表会更新列表,无论它在哪里,下面使用旧项目将新项目添加到列表字典中的形式不起作用:
>>> d = {1: [1]}
>>> d[2] = d[1].append(3)
>>> d
{1: [1, 3], 2: None}
我写了一些繁琐的代码来解决这个问题。这个问题怎么样?
>>> d = {1: [1], 2:[1, 3]}
>>> # add a new item for each item where k*=3 and 5 is appended to d[k]
答案 0 :(得分:0)
你的dict中{2}获得None
的原因是append
是一个返回None
的就地操作。
如果您想建立一个新列表,可以尝试:
>>> d = {1: [1]}
>>> d[2] = d[1] + [3]
>>> d
{1: [1], 2: [1, 3]}
但我想不出有这么好的理由。如果您在语义上所做的只是构建带索引的列表,那么您可以这样做,请记住Python开始计算索引和切片为0:
>>> l = [1]
>>> l.append(3)
>>> l
[1, 3]
>>> l[0]
1
>>> l[1]
3