我有以下問題,我不知道該怎么做。有人可以幫忙嗎???
“您正在舉辦一個派對,并希望將具有相似興趣的人配對。您已經在字典中收集了有關每位客人最喜歡的興趣的資料,如下所示:
興趣 = {'索菲亞':'計算機','安德斯':'跳舞','梅特':'跳舞','光':'計算機','Riko':'劃船','Troels':'劃船' , '莎拉' : '劃船' }
為了能夠在聚會上快速提出話題,您需要將此詞典轉換為不同的布局。
你的任務是撰寫一個函式 transform_dictionary ,它將一個字典作為引數,如上面的字典,并回傳一個字典,其中每個鍵都是一個興趣,值是所有共享這種興趣的人的串列。例如,對于上面的串列,回傳的字典是(不考慮元素的特定順序)
我需要列印:
{'計算機':['索菲亞','光'],'跳舞':['安德斯','梅特'],'賽艇':['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))
uj5u.com熱心網友回復:
您可以使用collections.defaultdict(list)then 僅使用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']}
uj5u.com熱心網友回復:
你可以這樣做:
interests = {
'Sophia' : 'Computer',
'Anders' : 'Dancing',
'Mette' : 'Dancing',
'Hikari' : 'Computer',
'Riko' : 'Rowing',
'Troels' : 'Rowing',
'Sarah' : 'Rowing'
}
# convert dictionary into a different layout.
def transform_dictionary(interests):
new_dict = {}
for v in interests.values():
new_dict[v] = [i for i in interests if interests[i] == v]
return new_dict
print(transform_dictionary(interests))
輸出:
{'Computer': ['Sophia', 'Hikari'], 'Dancing': ['Anders', 'Mette'], 'Rowing': ['Riko', 'Troels', 'Sarah']}
uj5u.com熱心網友回復:
這有效:
def transform_dictionary(interests):
new_dict = {}
for key, value in interests.items():
if not value in new_dict:
new_dict[value] = [key]
else:
new_dict[value] = [key]
return new_dict
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/312949.html
