Python:使用旧项目将新项添加到列表的dict中

时间:2014-01-25 20:23:04

标签: python

由于附加到列表会更新列表,无论它在哪里,下面使用旧项目将新项目添加到列表字典中的形式不起作用:

>>> 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]

1 个答案:

答案 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