替换字典中的值

时间:2014-04-22 06:15:47

标签: python python-3.x dictionary

我不确定如何用另一个值替换字典的值。我希望将b的值替换为a的值,并将c的值替换为b的值(这是值{ a)。

my_dict = {"a":1, "b":"a", "c":"b"}
for d_values in my_dict.values():
   for d_keys in my_dict.keys(): 
      if d_keys in d_values:
          my_dict[d_keys] = d_values 

我希望my_dict成为{a:1, b:1, c:1},但我的代码会在行的某处给我{a:a....}

3 个答案:

答案 0 :(得分:2)

我想,你过于复杂了。根据您的要求,您只需要

>>> dict.fromkeys(my_dict, my_dict['a'])
{'a': 1, 'c': 1, 'b': 1}

因此,不是替换值,而是使用相同的键结构重新创建整个字典,但值为my_dict['a']

答案 1 :(得分:1)

  

我希望my_dict成为{a:1,b:1,c:1},但我的代码在行的某处给了我{a:a ....}

如果要修改现有字典,可以简单地遍历设置所有值的元素:

>>> for e in my_dict.keys() : my_dict[e] = my_dict['a']
>>> print my_dict
{'a': 1, 'c': 1, 'b': 1}

在这里,我将键更改为字符以使示例正常工作。

答案 2 :(得分:0)

如果我得到了你打算做的事情,那就剪掉了它:

my_dict = {"a":1, "b":"a", "c":"b"}

changed = True
while changed:
    changed = False
    for key, value in my_dict.items():
        if value in my_dict:
            changed = True
            my_dict[key] = my_dict[value]