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)