在里面翻译字典

时间:2017-11-15 16:11:21

标签: python python-3.x dictionary

我有一个具有唯一值的字典,我希望将其反转(即交换键值为 inplace )。 没有使用另一个字典有没有办法呢?

我更愿意操纵dict中的项而不是使用新的字典,以便id(my_dict)保持不变。

2 个答案:

答案 0 :(得分:2)

如果您尝试交换键和值并且不介意重复值创建键冲突,则可以使用一行代码轻松“反向”字典:

dictionary = dict(map(reversed, dictionary.items()))

如果您更愿意使用词典理解语法,可以写下这一行:

dictionary = {value: key for key, value in dictionary.items()}

如果您不想使用字典的items方法,则很容易避免:

dictionary = {dictionary[key]: key for key in dictionary}

如果您能负担得起创建字典的副本,可以根据需要将其翻转:

def reverse_in_place(dictionary):
    reference = dictionary.copy()
    dictionary.clear()
    dictionary.update(map(reversed, reference.items()))

答案 1 :(得分:0)

我想你想交换密钥和dict的值?

你可以这样做:

dict_name = dict(zip(dict_name.values(), dict_name.keys()))