在 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)
在这里,我们先复制,更改它,然后将值作为元组添加回原始值。
我有以下词典-
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)
在这里,我们先复制,更改它,然后将值作为元组添加回原始值。