简介
字典是 Python 中的一种基本数据结构,它允许你存储键值对。有时,你可能需要反转一个字典,这意味着交换键和值,使值成为键,键成为值。在这个挑战中,你将负责编写一个函数,用于反转一个具有非唯一可哈希值的字典。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
字典是 Python 中的一种基本数据结构,它允许你存储键值对。有时,你可能需要反转一个字典,这意味着交换键和值,使值成为键,键成为值。在这个挑战中,你将负责编写一个函数,用于反转一个具有非唯一可哈希值的字典。
编写一个函数 invert_dictionary(obj)
,它接受一个字典 obj
作为输入,并返回一个键值颠倒的新字典。输入字典将具有非唯一的可哈希值。如果两个或更多键具有相同的值,该函数应将这些键追加到输出字典中的一个列表中。
要解决这个问题,你可以按照以下步骤进行:
collections.defaultdict
,将每个键的默认值设为列表。dictionary.items()
并结合循环,通过 dict.append()
将字典的值映射为键。dict()
将 collections.defaultdict
转换为常规字典。函数签名:def invert_dictionary(obj: dict) -> dict:
from collections import defaultdict
def collect_dictionary(obj):
inv_obj = defaultdict(list)
for key, value in obj.items():
inv_obj[value].append(key)
return dict(inv_obj)
ages = {
'Peter': 10,
'Isabel': 10,
'Anna': 9,
}
collect_dictionary(ages) ## { 10: ['Peter', 'Isabel'], 9: ['Anna'] }
在这个挑战中,你学习了如何反转一个具有非唯一可哈希值的字典。你使用了一个 collections.defaultdict
,将每个键的默认值设为列表,然后通过 dict.append()
将字典的值映射为键。最后,你使用 dict()
将 collections.defaultdict
转换为常规字典。