2013-04-07 91 views
0

我有一个字典将值存储为每个键的列表。例如:将项添加到Python中的字典中

dict1={} 
dict1["A"]=[] 

我想将数字追加到此列表中,但是如何正确执行此操作?我试过dict1["A"]=dict1["A"].append(1)

这个只附加了"None"。我该怎么做呢?

+0

这可能是因为你设置的附加价值,它返回'None'的关键价值。 – squiguy 2013-04-07 17:30:57

回答

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

无需重新分配。只要做dict1["A"].append(1)

您所犯的错误是dict1["A"].append(1)返回None并且您将其指定回dict1。这说明你得到的None ...

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