list1 = [
{'name': '王生功', 'hobbey': '喝酒'},
{'name': '王生功', 'hobbey': '抽烟'},
{'name': '王生功', 'hobbey': '旅游'},
{'name': '王生功', 'hobbey': 'K歌'},
{'name': '小包', 'hobbey': '喝酒'},
{'name': '小包', 'hobbey': '夜不归宿'},
{'name': '小包', 'hobbey': '抽烟'},
{'name': '王生功', 'hobbey': 'K歌'},
]
def getNewList(list1):
hobbey_list=[]
nameList=list(set([list1[i]['name'] for i in range(len(list1))]))
list4=[]
for i in range(len(nameList)):
hobbey_list.append([])
for x in range(len(list1)):
if list1[x]['name'] == nameList[i]:
hobbey_list[i].append(list1[x]['hobbey'])
list4.append({})
list4[i].setdefault('name',nameList[i])
list4[i].setdefault('hobbey_list',hobbey_list[i])
return list4
print(getNewList(list1))
输出格式如下
[{'name': '小包', 'hobbey_list': ['喝酒', '夜不归宿', '抽烟']}, {'name': '王生功', 'hobbey_list': ['喝酒', '抽烟', '旅游', 'K歌', 'K歌']}]