精华内容
下载资源
问答
  • 本文实例讲述了python实现对象列表根据某个属性排序的方法。分享给大家供大家参考,具体如下:对于一个已有的python list, 里面的内容是一些对象,这些对象有一些相同的属性, 在一些特定的情况下,需要自己选择...

    本文实例讲述了python实现对象列表根据某个属性排序的方法。分享给大家供大家参考,具体如下:

    对于一个已有的python list, 里面的内容是一些对象,这些对象有一些相同的属性值, 在一些特定的情况下,需要自己选择特定的排序,也就是根据某一个具体的属性来排序,在网上找了下资料,一般来说有两种方法,但从根本上来说,还是调用了list.sort 方法来实现。下面是简单的测试代码片段:

    #coding:utf-8

    class Person:

    def __init__(self,name,age,salary):

    self.name = name

    self.age = age

    self.salary = salary

    obj_list = [

    Person('juneys',20,30000),

    Person('sam',20,20000),

    Person('eddy',22,25000),

    Person('eagle',25,10000)

    ]

    #第一种方法

    obj_list.sort(cmp=None, key=lambda x:x.salary, reverse=False)

    print '***********第一种方法***********************'

    for obj in obj_list:

    print obj.name,obj.salary

    # 第二种方法,更适合于大量数据的情况.

    try:

    import operator

    except ImportError:

    cmpfun= lambda x: x.count # use a lambda if no operator module

    else:

    cmpfun= operator.attrgetter("salary") # use operator since it's faster than lambda

    obj_list.sort(key=cmpfun, reverse=True)

    print '***********第二种方法***********************'

    for obj in obj_list:

    print obj.name,obj.salary

    构造了一个 Person 类, 然后初始化一些对象放入obj_list 中, 然后想根据工资进行排序,方法一与方法二分别实现了升序或者降序。 以此类推还可以实现按年龄排序等.

    本例结果如下:

    ***********第一种方法***********************

    eagle 10000

    sam 20000

    eddy 25000

    juneys 30000

    ***********第二种方法***********************

    juneys 30000

    eddy 25000

    sam 20000

    eagle 10000

    PS:这里再为大家推荐一款关于排序的演示工具供大家参考:

    在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:http://tools.jb51.net/aideddesign/paixu_ys

    更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

    希望本文所述对大家Python程序设计有所帮助。

    本文标题: python实现对象列表根据某个属性排序的方法详解

    本文地址: http://www.cppcns.com/jiaoben/python/262093.html

    展开全文
  • 本文实例讲述了python实现对象列表根据某个属性排序的方法。分享给大家供大家参考,具体如下: 对于一个已有的python list, 里面的内容是一些对象,这些对象有一些相同的属性, 在一些特定的情况下,需要自己选择...
  • python实现对象列表根据某个属性排序的方法详解发布时间:2020-09-12 05:06:39来源:脚本之家阅读:105本文实例讲述了python实现对象列表根据某个属性排序的方法。分享给大家供大家参考,具体如下:对于一个已有的...

    python实现对象列表根据某个属性排序的方法详解

    发布时间:2020-09-12 05:06:39

    来源:脚本之家

    阅读:105

    本文实例讲述了python实现对象列表根据某个属性排序的方法。分享给大家供大家参考,具体如下:

    对于一个已有的python list, 里面的内容是一些对象,这些对象有一些相同的属性值, 在一些特定的情况下,需要自己选择特定的排序,也就是根据某一个具体的属性来排序,在网上找了下资料,一般来说有两种方法,但从根本上来说,还是调用了list.sort 方法来实现。下面是简单的测试代码片段:

    #coding:utf-8

    class Person:

    def __init__(self,name,age,salary):

    self.name = name

    self.age = age

    self.salary = salary

    obj_list = [

    Person('juneys',20,30000),

    Person('sam',20,20000),

    Person('eddy',22,25000),

    Person('eagle',25,10000)

    ]

    #第一种方法

    obj_list.sort(cmp=None, key=lambda x:x.salary, reverse=False)

    print '***********第一种方法***********************'

    for obj in obj_list:

    print obj.name,obj.salary

    # 第二种方法,更适合于大量数据的情况.

    try:

    import operator

    except ImportError:

    cmpfun= lambda x: x.count # use a lambda if no operator module

    else:

    cmpfun= operator.attrgetter("salary") # use operator since it's faster than lambda

    obj_list.sort(key=cmpfun, reverse=True)

    print '***********第二种方法***********************'

    for obj in obj_list:

    print obj.name,obj.salary

    构造了一个 Person 类, 然后初始化一些对象放入obj_list 中, 然后想根据工资进行排序,方法一与方法二分别实现了升序或者降序。 以此类推还可以实现按年龄排序等.

    本例结果如下:

    ***********第一种方法***********************

    eagle 10000

    sam 20000

    eddy 25000

    juneys 30000

    ***********第二种方法***********************

    juneys 30000

    eddy 25000

    sam 20000

    eagle 10000

    PS:这里再为大家推荐一款关于排序的演示工具供大家参考:

    在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:http://tools.jb51.net/aideddesign/paixu_ys

    更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

    希望本文所述对大家Python程序设计有所帮助。

    展开全文
  • package javaTest; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator;...import java.util.List; public class ListSort<E> { public static void ma...
    package javaTest;
    
    import java.util.ArrayList;  
    import java.util.Collections;  
    import java.util.Comparator;  
    import java.util.List;  
      
    public class ListSort<E> {  
        public static void main(String[] args) {  
      
            List<User> list = new ArrayList<User>();  
      
            // 创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中  
            User u1 = new User();  
            u1.setAge(20);  
            u1.setBirthDay("1998-01-01");
            User u2 = new User();  
            u2.setAge(19);  
            u2.setBirthDay("1999-01-01");
            User u3 = new User();  
            u3.setAge(21);  
            u3.setBirthDay("1997-01-01");
            
            list.add(u1);  
            list.add(u2);  
            list.add(u3);  
      
            System.out.println("排序前:" + list);  
            //把人员按照年龄从小到大排列
            Collections.sort(list, new Comparator<User>() {  
      
                @Override  
                public int compare(User u1, User u2) {  
                    if (u1.getAge() > u2.getAge()) {  
                        return 1;  
                    }  
                    if (u1.getAge() == u2.getAge()) {  
                        return 0;  
                    }  
                    return -1;  
                }  
            });  
            System.out.println("升序排序后:" + list);  
            //把人员按照年龄从大到排列
            Collections.sort(list, new Comparator<User>() {  
      
                public int compare(User u1, User u2) {  
      
                    // 按照学生的年龄进行降序排列  
                    if (u1.getAge() > u2.getAge()) {  
                        return -1;  
                    }  
                    if (u1.getAge() == u2.getAge()) {  
                        return 0;  
                    }  
                    return 1;  
                }  
            });  
            System.out.println("降序排序后:" + list);  
            
            //把人员按照出生日期从小到大排列
            Collections.sort(list, new Comparator<User>() {  
      
                public int compare(User u1, User u2) {  
                	return u1.getBirthDay().compareTo(u2.getBirthDay());  //大于返回1;小于返回-1;等于返回0
                }  
            });  
            System.out.println("降序排序后:" + list);  
            
            //把人员按照出生日期从大到小排列
            Collections.sort(list, new Comparator<User>() {  
      
                public int compare(User u1, User u2) {  
                	return -u1.getBirthDay().compareTo(u2.getBirthDay());  //大于返回1;小于返回-1;等于返回0
                }  
            });  
            System.out.println("降序排序后:" + list); 
            //如果字段为boolean型,可以采用下面的方式比较大小
            Boolean b1 = true; // 创建Boolean对象1  
            Boolean b2 = false; // 创建Boolean对象0  
            Boolean b3 = true; // 创建Boolean对象1  
            System.out.println(b1);  
            int i;  
            i = b1.compareTo(b2); // b1和b2进行比较    i=1
            System.out.println(i);//1-0   
            i = b2.compareTo(b1); // b2和b1进行比较   i=-1
            System.out.println(i);//0-1  
            i = b1.compareTo(b3); // b1和b3进行比较   i=0
            System.out.println(i);//1-1  
        }  
    }  
      
    class User{    
          
        private int age;  
        
        private String birthDay; 
          
        public int getAge() {    
            return age;    
        }    
        
        public void setAge(int age) {    
            this.age = age;    
        }    
        
        public String getBirthDay() {
    		return birthDay;
    	}
    
    	public void setBirthDay(String birthDay) {
    		this.birthDay = birthDay;
    	}
    
    	@Override    
        public String toString() {    
            return getAge()+":"+getBirthDay();    
        }    
    }  
    
    
    展开全文
  • import java.util.Comparator; import java.util.List; public class Test { public static void main(String[] args) { List<... //根据TestDto对象的priority字段降序排序 dtoList.sort(Co
    package com.stream;
    
    
    import java.util.Comparator;
    import java.util.List;
    
    public class Test {
        public static void main(String[] args) {
            List<TestDto> dtoList=TestDto.getDtos();
    
            //根据TestDto对象的priority字段降序排序
            dtoList.sort(Comparator.comparing(TestDto::getPriority).reversed());
            //根据TestDto对象的sort字段升序排序
           // dtoList.sort(Comparator.comparing(TestDto::getSort));
    
    
            for (TestDto d:dtoList
                 ) {
                System.out.println(d);
            }
        }
    }
    
    展开全文
  • 集合提供了一个工具类:java.util.Collections 集合的工具类提供了若干静态方法,可以方便...但是如果要求根据集合中某个元素的值排序,该如何进行呢? 代码演示 public static void main(String[] args) { ...
  • 根据org_code进行升序排列 第二种 List sysAreas = sysAreaMapper.selectByExample(condition); Collections.sort(sysAreas, new Comparator() { @Override public int compare(SysArea o1, SysArea o2) { return...
  • 对于一个已有的python list, 里面的内容是一些对象,这些对象有一些相同的属性, 在一些特定的情况下,需要自己选择特定的排序,也就是根据某一个具体的属性来排序,在网上找了下资料,一般来说有两种方法,但从...
  • 对于一个已有的python list, 里面的内容是一些对象,这些对象有一些相同的属性, 在一些特定的情况下,需要自己选择特定的排序,也就是根据某一个具体的属性来排序,在网上找了下资料,一般来说有两种方法,但从...
  • //如果是对象则将所有HashMap<...换成对象即可,当然,if里获取的方式也要进行修改 Collections.sort(clList, new Comparator<HashMap<String, Object>>() { @Override public int compa...
  • 1. 根据集合中对象某个属性, 排序 List<RoomCartypeParamters> roomCartypeParamtersList = new ArrayList<>(); //进行排序, 按照指定字段升序排列 Collections.sort(roomCartypeParamtersList, ...
  • 需求:lambda根据多个条件对list进行排序,并且根据对象内的某个属性来去重 resList = resList.stream() .sorted(Comparator.comparing(ResCenterAuditDTO::getCreateTime).reversed()) .sorted(Comparator....
  • var list=[ { name:"aaa", score:80 }, { name:"bbb", score:70 }, { name:"ccc", score:90 }, { name:"ddd...
  • 个人记录 由于本人用的也不是很精通,所有做个记录,方便查阅 快速处理集合 | Java8 新特性 好用的 Stream ...以上新的coinList就是list中每个AllCoinEntity对象的coin字段的 可参考: https://cloud....
  • 方法compareTo()比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别...普通的Integer 类型key进行比较:public classjava_ListMapSort {public static voidmain(String[] args) {List> lis...
  • 方法compareTo()比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。返回整数,1,-1,0;返回1表示大于,返回-1表示小于,返回0表示相等。普通的Integer 类型key进行...
  • 有一个场景,就是一个有listlist里面放的是Card对象,Card对象有多个属性,包括卡用户信息、卡类型cardType,这个list是查询用户卡包得到的卡列表。卡的类型有普卡、金卡、钻卡,等级由低到高排序分别是:普卡、...
  • 方式1,2利用Set 不允许重复的进行去重--- TreeSet其实也是可以的 只是会重新排序 方式3 方式一,利用HashSet不能添加重复数据的特性 由于HashSet不能保证添加顺序,所以只能作为判断条件: private static void...
  • List(Object)排序

    千次阅读 2019-02-26 11:20:25
    需求是根据一个对象list中的某个字段的值排序,比如根据列表中人的年龄排序: 在实体类中继承Comparable接口并重写compareTo()方法,方法里是自己需求比较的函数,可以根据自己的需求去写。   package ...
  • List集合快速排序

    2019-11-01 18:55:40
    List中存放的是某个对象,现在要把这个集合根据对象某个属性进行排序,不过需要把要排序的属性变为可运算的数值,才能实现此功能。 代码示例如下: import java.util.Collections; import java.util....
  • Kotlin List 排序

    2020-04-23 10:27:59
    Kotlin中List根据对象某个属性进行升序或者倒序排列 升序: data.sortBy { it.power } data 为List,it.power 代表 data 对象某个属性。 倒序: data.sortByDescending { it.inWheat } it.inWheat ...
  • Java8 stream sorted排序时包括null

    千次阅读 2018-09-07 19:19:40
    开发过程中对象集合根据某个属性排序是常常遇到的情况,但有时排序会遇到对应属性为null的情况,会报空指针异常。 查找stream.sorted源码看到有Comparator.nullsFirst和Comparator.nullsLast方法,使用方法如下:...

空空如也

空空如也

1 2 3 4
收藏数 75
精华内容 30
关键字:

对象list根据某个值排序