python关于用字典存储数据的问题

img


找出相通爱好的人,并存储在字典中,例如:“美食:王天微,郑菲菲”作为一个条目存储在结果字典里面。(求救各位前辈,希望各位前辈们救救孩子吧!)

stu = {'李阳': '音乐、读书、跑步',
'王天薇': '美食、诗歌、旅游',
'郭晓强': '编程、骑行、旅游、跑步',
'文雨非': '羽毛球、跑步、音乐、诗歌',
'郑菲菲': '美食、排球、舞蹈'}

s,d = set(),dict()

for j in stu.values():
    s |= set(j.split("、"))

for i in s:
    for k, v in stu.items():
        if i in v:
            d[i] = d.get(i, []) + [k]
            
for i in d.items():
    print(f'{i[0]}:{"、".join(i[1])}')

输出如下:
读书:李阳
排球:郑菲菲
羽毛球:文雨非
美食:王天薇、郑菲菲
音乐:李阳、文雨非
跑步:李阳、郭晓强、文雨非
舞蹈:郑菲菲
骑行:郭晓强
旅游:王天薇、郭晓强
诗歌:王天薇、文雨非
编程:郭晓强

dict1={}
dict1['李阳']=['音乐','读书','跑步']
dict1['王天薇']=['美食','诗歌','旅游']
dict1['郭晓强']=['编程','骑行','旅游','跑步']
dict1['文雨非']=['羽毛球','跑步','音乐','诗歌']
dict1['郑菲菲']=['美食','排球','舞蹈']
items = [i for i in dict1.items()]
value = set([j  for i in dict1.values() for j in i ])  #得到所有爱好并去重
dict2={}
print(items)
print(value)
for i in value:
    for j in items:
        if i in j[1]:
            if i in dict2.keys():   #若字典中已有该爱好
                dict2[i].append(j[0])
            else:
                dict2[i]=[j[0]]
print(dict2)