python列表中的字典键有重复的,值有重复的,怎么把他转换成以下格式?

例如:

将此列表内容

l = [
    {"name":"小明","like":"玩游戏"},
    {"name":"小明","like":"唱歌"},
    {"name":"小王","like":"跳舞"},
    {"name": "小王","like":"弹吉他"},
    {"name": "小王","like":"演讲"}
]

转换成这种格式

l1  = [
    {"name":"小明","like":["玩游戏","唱歌"]},
    {"name":"小王","like":["跳舞","弹吉他","演讲"]}
]

求大神指点

import json
l = [
    {"name":"小明","like":"玩游戏"},
    {"name":"小明","like":"唱歌"},
    {"name":"小王","like":"跳舞"},
    {"name": "小王","like":"弹吉他"},
    {"name": "小王","like":"演讲"}
]
name = ''
arrs = []
p=0;
for i in l:
    if(i["name"]==name):
        arrs[p-1]["like"].append(i["like"])
    else:
        name =i["name"]
        p+=1;
        arrs.append({"name":i["name"],"like":[i["like"]]})
print(arrs)
l1  = [
    {"name":"小明","like":["玩游戏","唱歌"]},
    {"name":"小王","like":["跳舞","弹吉他","演讲"]}
]

 

l = [
    {"name":"小明","like":"玩游戏"},
    {"name":"小明","like":"唱歌"},
    {"name":"小王","like":"跳舞"},
    {"name": "小王","like":"弹吉他"},
    {"name": "小王","like":"演讲"}
]

t = {}
for d in l:
    t.setdefault(d["name"],[]).append(d["like"])
l1  = [{"name":k,"like":v} for k,v in t.items()]
print(l1)

 

import json
l = [
    {"name":"小明","like":"玩游戏"},
    {"name":"小王","like":"跳舞"},
    {"name":"小明","like":"唱歌"},
    {"name": "小王","like":"弹吉他"},
    {"name": "小王","like":"演讲"}
]
arrs = []
arrs.append({"name":l[0]["name"],"like":[]})
flag = False;
count = 0;
str = ''
for i in l:
    for j in arrs:
        print(i,arrs)
        count+=1;
        if(i["name"]==j["name"]):
            str = i["like"]
            flag = True;
            break;
        else:
            continue;
    if(flag):
        print(count)
        arrs[count-1]["like"].append(str);
    else:
        arrs.append({"name":i["name"],"like":[i["like"]]}) 
    flag = False;
    count = 0;
print(arrs)
l1  = [
    {"name":"小明","like":["玩游戏","唱歌"]},
    {"name":"小王","like":["跳舞","弹吉他","演讲"]}
]

你看看这篇

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y