[英]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.