簡體   English   中英

python dict更新問題

[英]python dict update trouble

我在 MongoDB 中使用 Python

為什么此代碼有效:

for record in connection.collection.find():
    mydict = dict(record)
    mydict.update({"key": "value"})
    mylist.append(mydict)

結果:

{"data": [{"anotherkey": "anothervalue"},{"key": "value"}]}

這個代碼工作

for record in connection.collection.find():
    mydict = dict(record).update({"key": "value"})
    mylist.append(mydict)

結果:

{"data": [null, null]}

因為dict.update()是就地的,它不會返回任何東西。 所以當你這樣做時——

mydict = dict(record).update({"key": "value"})

mydict實際上是None ,就好像一個函數在 python 中不返回任何內容一樣,它默認返回None

然后當你這樣做 - mylist.append(mydict) - 你只是追加None (在第二種情況下)。

更新是一個改變原始對象的就地操作:

更新([其他])

使用其他鍵/值對更新字典,覆蓋現有鍵。 返回無

您可以使用**來獲得您想要的行為:

mydict = dict(record,**{"key": "value"})
 mylist.append(mydict)

暫無
暫無

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

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