簡體   English   中英

如何在python中創建詞典列表?

[英]How to create a list of dictionaries in python?

我正在嘗試在python中列出字典。 為什么這三種方法不能產生相同的結果?

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

這就是我得到的:

[{'first_name': 'Nancy'}, {'first_name': 'Nancy'}]
[{'first_name': 'Tom'}, {'first_name': 'Nancy'}]
[{'first_name': 'Tom'}, {'first_name': 'Nancy'}]

您的第一種方法是只創建一個字典。 等效於:

templist = [{}]
A = templist + templist

這會擴展列表,但不會復制其中的字典。 它也等效於:

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

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

Barmar有一個很好的答案,為什么。 我說你怎么做得好:)

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM