Python翻转字典,即键值对换位置

2022-05-03 00:00:00 字典 键值 翻转

一个常见的需求是翻转一个字典的键和值。所以,键会变成值,而值会变成键。
当我们这样做时,我们需要确保我们没有重复的键。虽然值可以重复,但键不能。还要确保所有的新键都是可哈希的。

"""
皮蛋编程(https://www.pidancode.com)
创建日期:2022/4/26
功能描述:Python翻转字典
"""
my_dict = {
    "brand": "Ford",
    "model": "Mustang",
    "year": 1964
}
# 根据字典的内容来反转字典
# 1- 如果我们知道所有的值都是唯一的。
my_inverted_dict = dict(map(reversed, my_dict.items()))


# 2- 如果存在非唯一的值
from collections import defaultdict

my_inverted_dict = defaultdict(list)
{my_inverted_dict[v].append(k) for k, v in my_dict.items()}


# 3- 如果任何一个值都是不可哈希的
my_dict = {value: key for key in my_inverted_dict for value in my_inverted_dict[key]}

相关文章