如何在python中创建词典列表?

时间:2019-05-06 16:55:41

标签: python arrays python-3.x dictionary

我正在尝试用python列出字典。为什么这三种方法不能产生相同的结果?

$ ocaml str.cma test.ml 
The first 3 chars of 'testing' are: tes
These are equal to 'tes'

这就是我得到的:

A = [{}]*2
A[0]['first_name'] = 'Tom'
A[1]['first_name'] = 'Nancy'
print A

B = [{},{}]
B[0]['first_name'] = 'Tom'
B[1]['first_name'] = 'Nancy'
print B


C = [None]*2
C[0] = {}
C[1] = {}
C[0]['first_name'] = 'Tom'
C[1]['first_name'] = 'Nancy'
print C

2 个答案:

答案 0 :(得分:4)

您的第一种方法仅创建一个字典。等效于:

templist = [{}]
A = templist + templist

这会扩展列表,但不会复制其中的字典。它也等效于:

tempdict = {}
A = []
A.append(tempdict)
A.append(tempdict)

所有列表元素都是对同一tempdict对象的引用。

答案 1 :(得分:0)

Barmar为什么有一个很好的答案。我说你怎么做得好:)

如果要生成空字典的列表,请使用如下生成器:

A = [{}for n in range(2)]
A[0]['first_name'] = 'Tom'
A[1]['first_name'] = 'Nancy'
print (A)