2014-04-22 122 views
0

我不知道如何用另一個值替換字典的值。我希望將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....}某處沿線

+0

換句話說整個字典,你希望所有值將被替換爲'a'處的值。 – duplode

回答

1

我想my_dict成爲{A:1,B:1,C:1},但我的代碼給我{A:一...}某處沿線

如果要修改現有的字典,你可以簡單地在元素上設置全部到位值迭代:

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

在這裏,我改變了字符的關鍵,使示例工作。

+0

改變了我的問題,以反映我想讓我的字典值看起來像什麼 – VN1992

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] 
2

我想,你是過於複雜。根據您的要求,您只是想什麼是

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

因此,而不是替換值,重新創建具有相同的按鍵結構,但與價值my_dict['a']