在 python 的嵌套字典中更新元组值中的值

Updating a value in a tuple-value in nested dictionary in python

我有以下词典-

Diction = {'stars': {(4, 3): (2, 3, 100, 0), (3, 4): (3, 2)}}

我正在尝试更新如下值:-

list(Diction['stars'][(4,3)])[-1] = 8765     #converting to list as tuples are immutable

之后我打印验证,但值没有改变,也没有显示任何错误。

print(list(Diction['stars'][(4,3)]))

谁能告诉我如何更新此处的值?

正如您自己所说,元组是不可变的。您不能更改它们的内容。

你当然可以总是用更新后的值创建一个新的元组,然后用这个元组替换旧的元组。

类似

Diction = {'stars': {(4, 3): (2, 3, 100, 0), (3, 4): (3, 2)}}
temp = list(Diction['stars'][(4,3)]) 
temp[-1] = 8765
Diction['stars'][(4,3)] = tuple(temp) # convert back to a tuple

当您将元组转换为列表时,实际上是在复制元组。如果您仍然希望拥有相同的功能并将项目保留为元组而不是列表,您可以执行以下操作:

Diction = {'stars': {(4, 3): (2, 3, 100, 0), (3, 4): (3, 2)}}

my_item = list(Diction["stars"][4, 3])
my_item[-1] = 8765
Diction['stars'][4, 3] = tuple(my_item)

在这里,我们先复制,更改它,然后将值作为元组添加回原始值。