gpt4 book ai didi

python - 如何在不获取 TypeError 的情况下更改具有多个值(元组)的字典的特定值

转载 作者:太空宇宙 更新时间:2023-11-04 02:12:00 24 4
gpt4 key购买 nike

我在下面有一个函数,它使用输入的函数参数搜索字典键匹配。如果找到关键匹配项,我希望索引 1(团队)的值更改为调用函数时输入的所需团队:

dict1 = {'Messi' : ('Argentina','Barcelona'), 'Ronaldo' : ('Portugal','Juventus'), 'Robben': ('Netherlands','Bayern')}

def setNewTeam(plyr, newTeam):
for x in dict1:
if plyr == x:
dict1[plyr][1] = newTeam

setNewTeam('Messi', 'Manchester')

然而,当我运行这段代码时,我得到:

TypeError: 'tuple' object does not support item assignment

我知道这一定是因为元组是不可变的,但必须有一种方法可以使它工作,因为我正在使用字典,有人可以在这里伸出援手吗?

谢谢!

最佳答案

如错误消息所述,您不能将新项分配给元组,因为元组是 python 中的不可变对象(immutable对象)。

my_tup = (1,2,3)
my_tup[0] = 2 # TypeError

您可以做的是改用列表:

dict1 = {'Messi' : ['Argentina','Barcelona'], 'Ronaldo' : ['Portugal','Juventus'], 'Robben': ['Netherlands','Bayern']}

def setNewTeam(plyr, newTeam):
for x in dict1:
if plyr == x:
dict1[plyr][1] = newTeam

setNewTeam('Messi', 'Manchester')

请注意如何使用 [] 创建列表而使用 () 创建元组。

关于python - 如何在不获取 TypeError 的情况下更改具有多个值(元组)的字典的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53539915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com