修改字典中的元组元素

时间:2014-06-03 07:15:47

标签: python dictionary tuples

我有一个以下字典作为输入:

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)

但我不认为它是正确的方法,因为我在循环中修改字典。

3 个答案:

答案 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'在您的代码段中未定义。但是,如果您需要修改元组,则可能有更好的类型。