我有一个以下字典作为输入:
my_dict[(1, 2)] = (3,4)
现在我希望将其转换为:
my_dict[(1,2)] = (3,40)
最好和最有效的方法是什么?
字典本身不是很大......
我可以做类似的事情:
for (var1,var2),(var3,var) in my_dict.iteritems():
del my_dict[(var1,var2)]
my_dict[(var1,var2)] = (var3, var5)
但我不认为它是正确的方法,因为我在循环中修改字典。
答案 0 :(得分:2)
您可以直接指定密钥;无需先删除密钥。
你可以遍历字典,产生密钥(你的元组);甚至无需打开包装:
for key in my_dict:
my_dict[key] = (my_dict[key][0], var5)
或包含值:
for key, (val1, _) in my_dict.iteritems():
my_dict[key] = (val1, var5)
这解压只是值,以便您可以重用第一个元素。我已使用_
作为第二个值元素的名称来记录它,并在循环中被忽略。
答案 1 :(得分:1)
my_dict={}
my_dict[(1, 2)] = (3,4)
for i,val in my_dict.items():
my_dict[i]=(3,24)
print my_dict
#output {(1, 2): (3, 24)}
其他方式。
for i in my_dict.keys():
my_dict[i]=(3,24)
print my_dict
也
for i in my_dict:
my_dict[i]=(3,24)
print my_dict
答案 2 :(得分:0)
你可以这样做:
my_dict[(1, 2)] = (3,4)
my_Dict2={i:(j[0],j[1]*10) for i,j in my_Dict.items()}
但是我不确定这是不是你想要的,因为' var5'在您的代码段中未定义。但是,如果您需要修改元组,则可能有更好的类型。