📌  相关文章
📜  如何在 python 字典中将键更改为值,反之亦然 - Python (1)

📅  最后修改于: 2023-12-03 15:24:20.364000             🧑  作者: Mango

如何在 Python 字典中将键更改为值,反之亦然

Python 字典是一个无序、可变、键唯一的数据集合,通常用于存储具有关联的数据。有时候,我们需要交换字典的键和值,将原来的键作为新的值,将原来的值作为新的键。本文将介绍如何在 Python 中实现这个操作。

将键变为值

可以使用字典的 items() 方法获取字典中的键值对,然后使用 dict() 函数将它们反转,即将键变为值,值变为键。

# 定义一个字典
d = {'a': 1, 'b': 2, 'c': 3}

# 将键变为值
d_new = dict((v, k) for k, v in d.items())

print(d_new)
# 输出:{1: 'a', 2: 'b', 3: 'c'}

这里使用了一个生成器表达式,将原字典中的每个键值对反转,并通过 dict() 函数创建了一个新的字典。

将值变为键

同样可以使用 items() 方法获取字典中的键值对,然后创建一个新的字典,该字典的键是原字典中的值,值是原字典中相同值的键的列表。

# 定义一个字典
d = {'a': 1, 'b': 2, 'c': 2}

# 将值变为键
d_new = {}
for k, v in d.items():
    d_new.setdefault(v, []).append(k)

print(d_new)
# 输出:{1: ['a'], 2: ['b', 'c']}

这里使用了 setdefault() 方法,它返回字典中指定键的值,如果该键不存在,就将该键的值设为一个空列表,然后返回它的值。接着,将原字典中键值对的值作为新字典的键,原字典中相同值的键作为新字典中该键的值列表的元素。