合并列表中某一个键值相同的所有dict

代码:

def main():
    persons = [{"user_id":2009, "name":"zpf", "sex":"man"}
              ,{"user_id":2010, "name":"ly","sex":"man"}
              ,{"user_id":2009,"name":"lc","age":22}
              ,{"user_id":2009,"name":"yw","birthday":199010}
              ,{"user_id":2010,"age":25,"num":201010603211}
              ,{"user_id":2011,"name":"dl","age":26}
              ,{"user_id":2012,"name":"zpf","age":22}]
    ids = []
    person_list = []
    for person in persons:
        id = person["user_id"]
        temp = {}
        if id not in ids:
            ids.append(id)
            temp_list = filter(lambda x: x["user_id"]==person["user_id"], persons)
            for i in temp_list:
                temp.update(i)
            person_list.append(temp)
        else:
            continue

    return person_list

需求:合并人员列表中user_id相同的dict到一个dict中

结果:

[{'user_id': 2009, 'birthday': 19901020, 'name': 'yw', 'age': 22, 'sex': 'man'}, 
{'user_id': 2010, 'num': 201010603211, 'name': 'ly', 'age': 25, 'sex': 'man'},
 {'user_id': 2011, 'age': 26, 'name': 'dl'}, 
 {'user_id': 2012, 'age': 22, 'name': 'zpf'}]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值