合并列表中某一个键值相同的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‘}]

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-07 10:08:10

合并列表中某一个键值相同的dict的相关文章

Python List pop()方法-用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

描述 pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值. 语法 pop()方法语法: list.pop(obj=list[-1]) 参数 obj -- 可选参数,要移除列表元素的对象. 返回值 该方法返回从列表中移除的元素对象. 实例 以下实例展示了 pop()函数的使用方法: #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc']; print "A List : ", aList.pop(); pr

使用LINQ获取List列表中的某个字段值

使用LINQ获取列表中的某个字段值,下面以获取员工列表中的编号字段为例子. 1.使用Select方法 1 List<Emplayee> emplayeeList = GetEmplayeeList(); //获取员工信息列表 2 int[] empIds = emplayeeList.Select(a => a.Id).ToArray(); //获取员工编号数组 2.使用ForEach方法 1 List<Emplayee> emplayeeList = GetEmplayee

.NET 获取Get方式URL中的参数键值

在Web开发中,我们常常会涉及到需要获取Get方式URL中的参数键值的情况,这里简单介绍三种方法: 第一种:常用的做法有使用JavaScript获取location.href后用正则表达式匹配获取此URL的所有键值对: 第二种:这里比如有个Key参数键,需要获取它对应的值:这时可以使用.NET里的Request.Form["Key"](针对Post)或Request.QueryString["Key"](针对Get),也可以用Request["Key&qu

Python List index()方法-用于从列表中找出某个值第一个匹配项的索引位置

描述 index() 函数用于从列表中找出某个值第一个匹配项的索引位置. 语法 index()方法语法: list.index(obj) 参数 obj -- 查找的对象. 返回值 该方法返回查找对象的索引位置,如果没有找到对象则抛出异常. 实例 以下实例展示了 index()函数的使用方法: #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc']; print "Index for xyz : ", aList.index( 'xyz

获取列表中某一个文件夹下的列表项集合(不包含子文件夹对象,也不包含子文件夹中的列表项)

RT,方法如下: 1 SPListItemCollection GetSubItemsWithoutFoldersInParrentFolder(SPFolder parrent) 2 { 3 SPList list = parrent.Item.ParentList; 4 SPQuery query = new SPQuery(); 5 query.Folder = parrent; 6 query.Query = "<Where><Eq><FieldRef Na

python基础之取列表中最大值的索引值

''' 取列表中最大值的索引值 www.pythontutor.com ''' list_group = [5,90,59,132,54] max_index = 0 list_index = 0 for num in list_group: if num > list_group[max_index]: max_index = list_index list_index += 1 print(max_index) 原文地址:https://blog.51cto.com/9237101/2440

Java中Map根据键值(key)或者值(value)进行排序实现

我们都知道,java中的Map结构是key->value键值对存储的,而且根据Map的特性,同一个Map中 不存在两个Key相同的元素,而value不存在这个限制.换句话说,在同一个Map中Key是唯一的,而value不唯一.Map是一个接口,我们不能 直接声明一个Map类型的对象,在实际开发中,比较常用的Map性数据结构是HashMap和TreeMap,它们都是Map的直接子类.如果考虑到存取 效率的话,建议使用HashMap数据结构,而如果需要考虑到Key的顺序,建议使用TreeMap,但是

不知道属性名称,动态遍历json中的所有键值对

javascript中使用ajax技术访问后台资源的时候,常常使用json作为轻量级数据传输格式.json类似于java中的HashMap, 是由一系列的key-value键值对构成.如果后台返回给前台的json中key的值是动态生成的,那么我们没有办法使用常规 的object.name或object["name"]的方式来获取json中的值.这个时候我们需要在不知道属性名称的时候,遍历json对象 ,可以使用如下方式: var jsonObj = {"55":&q

关于vue中v-for的键值顺序

在学习vue2.0时,关于处理v-for键值顺序时发现的问题: <body> <!-- 普通循环 --> <!-- {{num}} --> <!-- 列表循环 --> <div id="itany"> <ul> <!-- name,value对应的是value name 但是在显示时则是name value --> <li v-for = "(name,value) in user&qu