我正在嘗試創建一個具有一些特定值的字典,但它獲得多個相同的值
readers = Readers.objects.all()
count = 0
readersResult = {}
teste = {
"avatar": "",
"firstName": "",
"percent": "",
"lastName": ""
}
for reader in readers:
test["percent"] = "value from another place"
test["firstName"] = reader.firstName
test["lastName"] = reader.lastName
test["avatar"] = reader.avatar
print("TEST: ", test)
readersResult[count] = test
count = count 1
print("RESULT":, readersResult)
我的輸出是:
web_1 | TEST: {'avatar': '/images/avatars/71.png', 'firstName': 'abc', 'percent': '37.08999158957107', 'lastName': 'def'}
web_1 | TEST: {'avatar': '/images/avatars/61.png', 'firstName': 'abc', 'percent': '4.037005887300253', 'lastName': 'def'}
web_1 | RESULT: {0: {'avatar': '/images/avatars/61.png', 'firstName': 'abc', 'percent': '4.037005887300253', 'lastName': 'def'}, 1: {'avatar': '/images/avatars/61.png', 'firstName': 'abc', 'percent': '4.037005887300253', 'lastName': 'def'}}
我究竟做錯了什么 ?
uj5u.com熱心網友回復:
您將相同的字典 ( test) 分配給 中的多個條目readersResult,而不是為每個條目創建一個新的reader。
uj5u.com熱心網友回復:
您可以使用串列作為字典值:
readers = Readers.objects.all()
count = 0
readersResult = {}
teste = {
"avatar": [],
"firstName": [],
"percent": [],
"lastName": []
}
for reader in readers:
test["percent"].append("value from another place")
test["firstName"].append(reader.firstName)
test["lastName"].append(reader.lastName)
test["avatar"].append(reader.avatar)
print("TEST: ", test)
readersResult[count] = test
count = count 1
print("RESULT":, readersResult)
uj5u.com熱心網友回復:
在這里,在您的代碼中,您進行了一個dict命名測驗,然后在每次回圈迭代中將其再次添加到readersResult.
test = {
"avatar": "",
"firstName": "",
"percent": "",
"lastName": ""
}
for reader in readers:
test["percent"] = "value from another place"
test["firstName"] = reader.firstName
test["lastName"] = reader.lastName
test["avatar"] = reader.avatar
print("TEST: ", test)
readersResult[count] = test
count = count 1
您需要在dict每次回圈迭代時創建一個新的。因此,將這部分代碼交換為:
for reader in readers:
test = {}
test["percent"] = "value from another place"
test["firstName"] = reader.firstName
test["lastName"] = reader.lastName
test["avatar"] = reader.avatar
print("TEST: ", test)
readersResult[count] = test
count = count 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/430797.html
標籤:Python django 列表 django-views
上一篇:為什么在postgres Django中為auth_group表分組一個錯誤的別名
下一篇:Python回傳檔案中的變數
