0

我有一个字典,将值存储为每个键的列表。例如:

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

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

这只是附加"None"的。我该怎么做呢?

4

3 回答 3

4

你只需要打电话append()

dict1["A"].append(1)

由于自身的返回值为None,因此您的版本只是在成功将项目添加到列表append()替换了旧值(列表) 。None

快速演示:

>>> dict1 = {'A': []}
>>> dict1['A'].append(1)
>>> dict1
{'A': [1]}

在 Python 中,就地操作,例如追加到列表,返回None

>>> alist = []
>>> alist.append(1) is None
True
>>> alist
[1]

但如您所见,列表本身已更改。

于 2013-04-07T17:30:15.357 回答
1

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

您所做的错误是dict1["A"].append(1)返回None,并且您将其分配回dict1. 这解释了None你得到...

于 2013-04-07T17:30:41.907 回答
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]}
于 2013-04-07T17:30:58.530 回答