簡體   English   中英

如何更新 python 中的字典值

[英]How to update a dictionary value in python

我創建了一個具有范圍的字典:

answered = dict.fromkeys(range(1,51))

output:

{1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: None, 19: None, 20: None, 21: None, 22: None, 23: None, 24: None, 25: None, 26: None, 27: None, 28: None, 29: None, 30: None, 31: None, 32: None, 33: None, 34: None, 35: None, 36: None, 37: None, 38: None, 39: None, 40: None, 41: None, 42: None, 43: None, 44: None, 45: None, 46: None, 47: None, 48: None, 49: None, 50: None}

我試圖更新這樣的值:

answered[1] = sent_answer #sent_answer -> some text

但我得到的是:

{1: None, 2: None, 3: None, ..... ,49: None, 50: None, '1': 'I- III - II - IV'}

它正在添加一個新的 dict 項,鍵是 str 所以我希望它更新指定鍵的值。

如果你想確保它能夠 100% 完成這項工作,最好使用字典的update方法,如下所示:

my_dict = {1:"a value", 2:"another value"}
my_dict.update({1:"your value"})

此外,從 Python 3.10 開始,您可以執行以下操作:

my_dict |= {1:"your value"}

還有更多:

my_dict = {**my_dict, 1:"your value"}

你會得到以下結果:

{1:"your value", 2:"another value"}

請注意,您可以添加當前鍵值或新鍵值。 一般來說,這是一種upsert操作。

@NicolasGuruphat的答案相同。

我相信您遇到的問題是這一部分

我試圖更新這樣的值:

 answered[1] = sent_answer #sent_answer -> some text```

我想如果你回到你的代碼你會發現answered["1"]而不是answered[1]

確保您嘗試更新的密鑰類型相同。 如果它是字典中的字符串,那么在更新時,使用字符串。 如果您不這樣做,python 會將其視為不同的鍵並添加一個。

answers = {1: None, 2: None, 3: None}
answers[1] = 'some text'
print(answers)

Output:

{1: 'some text', 2: None, 3: None}

但是如果您使用不同的類型,則會添加一個新密鑰。

answers['2'] = 'new text'
print(answers)

Output:

{1: 'some text', 2: None, 3: None, '2': 'new text'}

當鍵是字符串時,它們也區分大小寫。

暫無
暫無

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

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