我有一个字典,将值存储为每个键的列表。例如:
dict1={}
dict1["A"]=[]
我想现在将数字附加到此列表中,但我该如何正确执行此操作?我试过了dict1["A"]=dict1["A"].append(1)
这只附加了"None"
。我该怎么做?
答案 0 :(得分:4)
您只需致电append()
dict1["A"].append(1)
由于append()
本身的返回值为无,因此在成功将项目添加到列表后,您的版本只是将旧值(列表)替换为None
快速演示:
>>> dict1 = {'A': []}
>>> dict1['A'].append(1)
>>> dict1
{'A': [1]}
在Python中,就地操作(如附加到列表)返回None
:
>>> alist = []
>>> alist.append(1) is None
True
>>> alist
[1]
但正如您所看到的,列表本身已更改。
答案 1 :(得分:1)
无需重新分配。只需dict1["A"].append(1)
。
您所犯的错误是dict1["A"].append(1)
返回None
并且您将其分配回dict1
。这解释了你得到的None
......
答案 2 :(得分:1)
这是因为append()
就地更改了列表并返回None
。在您的代码中,您将返回的值分配给dict1["A"]
In [25]: dict1={}
In [26]: dict1["A"]=[]
In [27]: dict1["A"].append(1) #try print dict1["A"].append(1) here
In [28]: dict1
Out[28]: {'A': [1]}