精华内容
下载资源
问答
  • list按照指定顺序排序
    千次阅读
    2020-11-01 11:55:45

    手记

    -- encoding=utf-8 --

    python3代码

    import operator

    一. 按字典值排序(默认为升序)

    x = {1:2, 3:4, 4:3, 2:1, 0:0}

    sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1))

    print sorted_x

    [(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]

    如果要降序排序,可以指定reverse=True

    sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1), reverse=True)

    print sorted_x

    [(3, 4), (4, 3), (1, 2), (2, 1), (0, 0)]

    二. 或者直接使用list的reverse方法将sorted_x顺序反转

    sorted_x.reverse()

    三. 更为常用的方法是,用lambda表达式

    sorted_x = sorted(x.iteritems(), key=lambda x : x[1])

    print sorted_x

    [(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]

    sorted_x = sorted(x.iteritems(), key=lambda x : x[1], reverse=True)

    print sorted_x

    [(3, 4), (4, 3), (1, 2), (2, 1), (0, 0)]

    四. 包含字典dict的列表list的排序方法与dict的排序类似,如下:

    x = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]

    sorted_x = sorted(x, key=operator.itemgetter('name'))

    print sorted_x

    [{'age': 10, 'name': 'Bart'}, {'age': 39, 'name': 'Homer'}]

    sorted_x = sorted(x, key=operator.itemgetter('name'), reverse=True)

    print sorted_x

    [{'age': 39, 'name': 'Homer'}, {'age': 10, 'name': 'Bart'}]

    sorted_x = sorted(x, key=lambda x : x['name'])

    print sorted_x

    [{'age': 10, 'name': 'Bart'}, {'age': 39, 'name': 'Homer'}]

    sorted_x = sorted(x, key=lambda x : x['name'], reverse=True)

    print sorted_x

    [{'age': 39, 'name': 'Homer'}, {'age': 10, 'name': 'Bart'}]

    更多相关内容
  • 集合按照指定顺序排序

    千次阅读 2018-09-19 11:20:57
    对一个集合按照指定id进行排序 package com.example.zhoujian.newfeaturedemo.bean; public class PersonBean { private int id; private String name; public PersonBean(int id, String name) { ...

    对一个集合按照指定id进行排序

    package com.example.zhoujian.newfeaturedemo.bean;
    
    public class PersonBean {
    
        private int id;
    
        private String name;
        
        public PersonBean(int id, String name) {
            this.id = id;
            this.name = name;
        }
        
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
        
        @Override
        public String toString() {
            return "PersonBean{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    '}';
        }
    }
    

     

     ArrayList<PersonBean> mBeanList = new ArrayList<>();
            PersonBean mPersonBean1 = new PersonBean(2, "曹操");
            PersonBean mPersonBean2 = new PersonBean(3, "刘备");
            PersonBean mPersonBean3 = new PersonBean(1, "孙权");
            mBeanList.add(mPersonBean1);
            mBeanList.add(mPersonBean2);
            mBeanList.add(mPersonBean3);
            Log.i("zhoujian", "排序前的数据=" + mBeanList.toString());
            Collections.sort(mBeanList, new Comparator<PersonBean>() {
                @Override
                public int compare(PersonBean personBean1, PersonBean personBean2) {
                    try {
                        return (personBean1.getId() - personBean2.getId());
                    } catch (Exception e) {
    
                        return 0;
                    }
                }
            });
            Log.i("zhoujian", "排序后的数据=" + mBeanList.toString());

     

    排序前的数据=[PersonBean{id=2, name='曹操'}, PersonBean{id=3, name='刘备'}, PersonBean{id=1, name='孙权'}]
    排序后的数据=[PersonBean{id=1, name='孙权'}, PersonBean{id=2, name='曹操'}, PersonBean{id=3, name='刘备'}]
    

     

    展开全文
  • 【java强化】java对list进行指定排序

    千次阅读 2021-10-14 17:23:19
    1.1 对List进行排序 @Test public void Test1() { List<Integer> list = new ArrayList<Integer>(); list.add(new Integer(5)); list.add(new Integer(13)); list.add(new Integer(4)); list....

    1.java传统表示方式

    1.1 对List进行排序

    		@Test
        public  void Test1() {
            List<Integer> list = new ArrayList<Integer>();
            list.add(new Integer(5));
            list.add(new Integer(13));
            list.add(new Integer(4));
            list.add(new Integer(9));
            Collections.sort(list);
            System.out.println(list.toString());
        }
    

    输出结果

    [4, 5, 9, 13]
    

    1.2 对对象中指定元素进行排序

     @Test
        public void Test2() {
            List<Student> list = new ArrayList<Student>();
            list.add(new Student("lhh",13));
            list.add(new Student("wcy",10));
            list.add(new Student("tw",25));
            Collections.sort(list);
            System.out.println(list.toString());
        }
        class Student implements Comparable<Student> {
    
            private String name; //姓名
    
            private int age; // 年龄
    
            public Student() {
            }
    
            public Student(String name, int age) {
                this.name = name;
                this.age = age;
            }
    
            public String getName() {
                return name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
    
            public int getAge() {
                return age;
            }
    
            public void setAge(int age) {
                this.age = age;
            }
    
            @Override
            public String toString() {
                return "Student{" +
                        "name='" + name + '\'' +
                        ", age=" + age +
                        '}';
            }
            //重写Comparable接口的compareTo方法,
            // 根据年龄升序排列,降序修改相减顺序即可
            @Override
            public int compareTo(Student o) {
                return this.age-o.getAge();
            }
        }
    

    输出结果

    [Student{name='wcy', age=10}, Student{name='lhh', age=13}, Student{name='tw', age=25}]
    

    1.3 通过匿名内部类的方式进行实现

    @Test
        public void Test3() {
            List<Student> list = new ArrayList<Student>();
            list.add(new Student("lhh",13));
            list.add(new Student("wcy",10));
            list.add(new Student("tw",25));
            Collections.sort(list, new Comparator<Student>() {
                @Override
                public int compare(Student o1, Student o2) {
                    int diff = o1.getAge() - o2.getAge();
                    if (diff > 0) {
                        return 1;
                    }else if (diff < 0) {
                        return -1;
                    }
                        return 0; //相等为0
                    }
            });
            System.out.println(list.toString());
        }
    

    输出结果

    [Student{name='wcy', age=10}, Student{name='lhh', age=13}, Student{name='tw', age=25}]
    

    2.使用java8新特性

    demo1:

    @Test
        public void lambdaTest1(){
            List<User> list = new ArrayList<>();
            list.add(new User(1,"张三"));
            list.add(new User(4,"赵六"));
            list.add(new User(2,"李四"));
            list.add(new User(3,"王五"));
    
            //条件删除
            list.removeIf(user -> user.getUserId() == 3);
            System.out.println("--------------排序前");
            list.forEach(user -> {
                System.out.println(user);
            });
            list.sort((user1,user2)->user1.getUserId() - user2.getUserId());
            System.out.println("_-------------------正序排序后");
            list.forEach(user -> {
                System.out.println(user);
            });
    
            System.out.println("--------------------倒序排序后:");
            list.sort((((o1, o2) -> o2.getUserId() - o1.getUserId())));
            list.forEach(user -> {
                System.out.println(user);
            });
        }
    
    
    
        class User{
            private Integer userId;
            private String userName;
    
    
    
            public Integer getUserId() {
                return userId;
            }
    
            public void setUserId(Integer userId) {
                this.userId = userId;
            }
    
            public String getUserName() {
                return userName;
            }
    
            public void setUserName(String userName) {
                this.userName = userName;
            }
    
            public User(Integer userId, String userName) {
                this.userId = userId;
                this.userName = userName;
            }
    
            public User() {
            }
    
            @Override
            public String toString() {
                return "User{" +
                        "userId=" + userId +
                        ", userName='" + userName + '\'' +
                        '}';
            }
        }
    

    demo2

    对获取到站点的降雨值进行排序. 这个是重要的排序思想,可以参考下

    List<RadarPre> collect = allStationData.stream().map(stationInfo -> {
                String param1 = "";
                String rain = HttpUtils.sendGet("x x x x", param1);
                RadarPre radarPre = new RadarPre();
                radarPre.setRain(Double.valueOf(rain));
                radarPre.setStationId(stationInfo.getStationCode());
                radarPre.setStationName(stationInfo.getStationName());
                radarPre.setLatitude(stationInfo.getLatitude());
                radarPre.setLongitude(stationInfo.getLongitude());
                return radarPre;
            }).sorted(Comparator.comparing(RadarPre::getRain).reversed()).limit(3).collect(Collectors.toList());
    
    展开全文
  • 按照特定的字符串顺序排序list

    千次阅读 2021-11-01 00:10:37
    也就是说 如何把字符串list 按照特定 的字符串内容 的顺序排序。 网上这个东西有点不好找,不过也搞出来了,记录一下。 希望可以帮到和我有同样需求的人。 代码: 代码优化空间其实很大,不过我就不优化了哈懂得...

    现在写的需求是这样
    要返回优惠券 但是要按照特定的券顺序来 对应券的一个属性 是字符串。
    也就是说 如何把字符串list 按照特定 的字符串内容 的顺序来排序。
    网上这个东西有点不好找,不过也搞出来了,记录一下。
    希望可以帮到和我有同样需求的人。
    在这里插入图片描述

    代码:
    代码优化空间其实很大,不过我就不优化了哈懂得都懂。看懂核心就行。
    在这里插入图片描述

    核心就是利用一个已有顺序的字符串list,用它的indexof返回元素的坐标值。比较坐标值即可拿到自定义顺序。

        public static void main(String[] args) {
            String[] regulation = {"再不用过期了啊!", "已经用了用了", "不听劝过期了把?哼哼"};
            List<String> regulationList = Arrays.asList(regulation);
            String[] test = {"已经用了用了", "不听劝过期了把?哼哼", "再不用过期了啊!", "凑数的"};
            List<String> stringList = Arrays.asList(test);
            Collections.sort(stringList, new Comparator<String>() {
                public int compare(String o1, String o2) {
                    int index1 = regulationList.indexOf(o1);
                    int index2 = regulationList.indexOf(o2);
                    return (index1 == -1 || index2 == -1) ? (index2 - index1) : (index1 - index2);
                }
            });
            stringList.forEach(System.out::println);
        }
    

    运行结果:
    在这里插入图片描述

    最近事情有点多,写博客这边必须规划下,挤也要把思想记录下来。
    最近是自从搞完双11需求之后 写内部应用号发消息的接口(申请+开发自己来的)

    在这里插入图片描述

    现在在写116需求,mentor这次让我自己写一整个(当然东西不多哈)
    ,感谢对俺的看好~ (这里开心表情包.jpg)

    展开全文
  • Python 将list按照指定规则排序

    万次阅读 2019-02-24 14:47:19
    list = [1,1,3,5,5,7,9,9,6] rule = [1,5,3,4,2,7,8,6,9,0] 目标:将list安装rule排列。 期望结果:[1,1,5,5,3,7,6,9,9] list = [1,1,3,5,5,7,9,9,6] rule = {1:0,5:1,3:2,4:3,2:4,7:5,8:6,6:7,9:8,0:9} newList = ...
  • Java中List按照自定义的顺序排序

    万次阅读 2019-05-30 17:33:39
    最近项目中遇到一个问题,一个List中每个元素都包含省份信息,而现在需要按照给定好的省份顺序对这个List进行排序。 省份的顺序如下:北京、天津、河北、山西、内蒙古、辽宁、吉林、黑龙江、上海、江苏、浙江、安徽...
  • 此时对这个list1进行排序顺序是给定的,rule,rule的形式是一个字典,他的得到的代码是这样的 for cell in rule: n=n+1 rule_dict.update({cell:n}) 现在就可以利用这个rule_dict对list1进行排序了。代码如下:...
  • // 待排序数据 List users = Stream.of( new User().setId("1").setName("user1"), new User().setId("2").setName("user2"), new User().setId("3").setName("user3"), new User().setId("4").setName("user4")...
  • Mysql之按照指定顺序排序 场景 select <include refid="Base_Column_List" /> from student <where> id in <foreach collection="ids" item="item" open="(" separator="," close=")"> #{...
  • dataframe 按照指定顺序排序

    千次阅读 2021-06-28 11:14:53
    如下index 按照区间排序 ['0_5', '6_9','10_14', '15_19', '20_29', '30_49', '50_99', '100_199', '200_299', '300_399','400_1000'] a b c d e f g h 0_5 0.05836 0.27791 0.38913 0.05282 0.04625 0.00162 0....
  • 本文实例讲述了Python3实现对列表按元组指定列进行排序的方法。分享给大家供大家参考,具体如下:Python版本: python3.+运行环境: Mac OSIDE: pycharmPython内建的排序方法1 排序方法介绍Python中有2个排序函数,...
  • java中List按照指定字段排序工具类

    万次阅读 2013-12-31 16:35:52
    java中List按照指定字段排序工具类,可以按照字段和排序方式排序,有例子,很实用的东东!
  • List快速按照指定顺序排列

    千次阅读 2017-05-26 07:40:00
    Comparator...这里我们使用了一个匿名内部类 去实现Comparator接口,根据当前List中的颜色的hsv值 分别去与指定颜色的hsv颜色值相减 再将两者的结果集 相减 指定排序规则 再使用Collections.sort方法即可
  • 本文实例讲述了Python常见排序操作。分享给大家供大家参考,具体如下:字典排序按value排序d1 = {"name":"python","bank":"icbc","country":china}# reverse是否...
  • import java.util.Collections; import java.util.Comparator;...import java.util.List; import com.google.common.base.Function; import com.google.common.collect.Lists; public PageInfo findPage(Long styleI
  • List按照一定规则排序

    千次阅读 2018-05-10 12:25:55
    Java集合的工具类Collections中提供了两种排序的方法,分别是:Collections.sort(List list)Collections.sort(List list,Comparator c)第一种称为自然排序,参与排序的对象需实现comparable接口,重写其compareTo()方法,...
  • 给Java.util.List指定顺序排序

    万次阅读 2012-03-05 15:01:07
    开发中有时需要给List排序,大家都知道List本身是排序的,但它内部排序是按照存入顺序排序的,故而有时候这并不是我们所需要的。 为此,我们需要按照我们的意愿把List里面的object排序。   例子:   实现List...
  • pandas 按照指定顺序进行列排序

    千次阅读 2020-11-24 18:52:26
    pandas 按照指定顺序进行列排序 将排序列设置成“category”数据类型 list_custom = ['b', 'a', 'c'] df['words'] = df['words'].astype('category') df['words'].cat.reorder_categories(list_custom, inplace=True...
  • PyDataRoad)前言写这篇文章的起由是有一天微信上一位朋友问到一个问题,问题大体意思概述如下:现在有一个pandas的Series和一个python的list,想让Series按指定list进行排序,如何实现?这个问题的需求用流程图...
  • python对list列表进行排序方法总结

    千次阅读 2022-05-07 13:53:16
    key 参数(可选)指定可迭代对象中的某个元素进行排序。 reverse 参数(可选)表示排序规则,包含升序(False)和降序(True),默认是False升序排序。 该方法没有返回值,示例如下: #!/usr/bin/env python # -...
  • DataFrame按某种指定顺序排序

    千次阅读 多人点赞 2020-09-02 11:24:57
    DataFrame按某种指定顺序排序创建待排序DataFrame并指定排序列表对DataFrame排序 创建待排序DataFrame并指定排序列表 import pandas as pd import numpy as np # 创建待排序dataframe name = ['Tom', 'John', '...
  • 一个List按照另一个List的数据顺序排序
  • 主要介绍了java8新特性将List中按指定属性排序过滤重复数据的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • List里的对象按照指定字段排序

    千次阅读 2018-05-16 10:30:24
    User.java(List集合的泛型类) public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } ...
  • 有一个集合,对其进行排序,排序规则为:按对象中某个字段的特定顺序进行排序,比如:对象属性id,按照【4,2,5,1】的顺序排序; #代码: public class Foo { public int Id { get; set; } public string Name ...
  • 平时我们一般都是直接按照一定的规则,在sql查询返回结果的时候,就返回特定排列顺序List结果。例如order by createtime desc; 这样的排序结果一般都是数据库中已有的字段的,比较好排序。 但是,有时候会有要求...
  • 他现在有这样的一个需求:想要对苹果库存里面的所有苹果,按照苹果的重量weight排序。这里咱们简单的使用List集合作为我们的仓库,快来看看如何一步一步的实现的更加简洁吧。 先来一个Apple类 public class Apple { ...
  • 摘要:在日常开发中,经常会用到排序算法...一:按指定字段排序,默认倒序,如下写法:/*** @description 对List集合按指定字段排序,默认倒序* @author zhaoxinguo* @date 2019/12/26*/private void sortList(List...
  • Java对String字符串进行指定顺序排序

    千次阅读 2020-06-23 17:23:23
    这个方法相信很多童鞋都用到过,我用的不是很多,今天就遇到过一个奇怪的问题:虽然使用了自己的比较器去排序,debug 的时候也进入的自定义的compare方法,但是通过Collections.sort()之后,list中的元素顺序并没有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 207,288
精华内容 82,915
热门标签
关键字:

list按照指定顺序排序