我遇到以下问题,但我不知道该怎么办。有人可以帮忙吗???
“您正在举办一个聚会,并希望将具有相似兴趣的人配对。 您已经收集了每位客人最感兴趣的数据 像这样的字典:
interests = { 'Sophia' : 'Computer', 'Anders' : 'Dancing', 'Mette' : 'Dancing', 'Hikari' : 'Computer', 'Riko' : 'Rowing', 'Troels' : 'Rowing', 'Sarah' : 'Rowing' }
为了能够在聚会上快速建议主题,您需要将其转换为 字典转换为不同的布局。
你的任务是编写一个以参数为参数的函数transform_dictionary 一个字典,例如上面的字典,并返回一个字典,其中 每个键都是一个兴趣,值是所有共享此兴趣的人的列表 兴趣。 例如,对于上面的列表,返回的字典是 (忽略元素的特定顺序)
我需要打印:
{'Computer': ['Sophia', 'Hikari'], 'Dancing': ['Anders', 'Mette'], 'Rowing': ['Riko', 'Troels', 'Sarah']}
这是我到目前为止所拥有的:
interests = {
'Sophia' : 'Computer',
'Anders' : 'Dancing',
'Mette' : 'Dancing',
'Hikari' : 'Computer',
'Riko' : 'Rowing',
'Troels' : 'Rowing',
'Sarah' : 'Rowing'
}
# comvert dictionary into a different layout.
def transform_dictionary(interests):
new_dict = {}
key_list = []
for k, v in new_dict:
if value in new_dict:
new_dict[value] = k
return {}
print(transform_dictionary(interests))
最佳答案
您可以使用collections.defaultdict(list)
然后只使用 append
如下所示:
from collections import defaultdict
dct = defaultdict(list)
for k,v in interests.items():
dct[v].append(k)
输出:
{'Computer': ['Sophia', 'Hikari'],
'Dancing': ['Anders', 'Mette'],
'Rowing': ['Riko', 'Troels', 'Sarah']}
关于python - 如何通过函数将字典中的多个键与一个值配对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69555219/