博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python sort sorted OrderDict
阅读量:4030 次
发布时间:2019-05-24

本文共 1092 字,大约阅读时间需要 3 分钟。

python对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数。

sort函数和sorted函数唯一的不同是,sort是在容器内排序,sorted生成一个新的排好序的容器。

 

对于一个简单的数组 L=[5,2,3,1,4].

sort: L.sort()

 

 

sorted(...)

    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

iterable:待排序的可迭代类型的容器;

cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
key:用列表元素的某个已命名的属性或函数(只有一个参数并且返回一个用于排序的值)作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。

 

如果是一个多维的列表 L=[(‘b’,2),(‘a’,1),(‘c’,3),(‘d’,4)].

有三种选择对这个多维列表进行排序

  • 利用cmp函数

sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))

L.sort(cmp=lambda x,y:cmp(x[1],y[1]))

  • 利用key

sorted(L, key=lambda x:x[1]);

L.sort(key=lambda x:x[1]);

  • 反序

以上几种排序均可加上参数reverse.

例如 sorted(reverse=True), L.sort(reverse=True). 或者改成False

OrderedDict是collections中的一个包,能够记录字典元素插入的顺序,常常和排序函数一起使用来生成一个排序的字典。

比如,比如一个无序的字典

d = {‘banana’:3,’apple’:4,’pear’:1,’orange’:2}

通过排序来生成一个有序的字典,有以下几种方式

collections.OrderedDict(sorted(d.items(),key = lambda t:t[0]))

或者

collections.OrderedDict(sorted(d.items(),key = lambda t:t[1]))

或者

collections.OrderedDict(sorted(d.items(),key = lambda t:len(t[0])))

转载地址:http://sohbi.baihongyu.com/

你可能感兴趣的文章
阿里技术团队推荐:Dubbo 服务化最佳实践
查看>>
Nginx 限流常用模块:限制并发和IP访问频率
查看>>
OpenResty 高性能服务器,单机可达10K
查看>>
RocketMQ的十二个特性,你都知道吗「上」
查看>>
RocketMQ的十二个特性,你都知道吗「下」
查看>>
一文搞懂RocketMQ最常见的16个基本概念
查看>>
Intellij IDEA启动优化,让开发的感觉飞起来
查看>>
玩转Java高并发?请先说明下并发下的惊群效应
查看>>
轻松搭建Redis 5.0集群环境,只需十分钟
查看>>
Jmeter压测错误,Address already in use: connect
查看>>
高并发API网关,Spring Cloud Gateway 之限流操作
查看>>
OAuth2.0 微服务认证授权,四种常见的授权模式
查看>>
Java 2019 面试宝典
查看>>
Redis面试题之持久化和五种部署方式
查看>>
搞定Spring Cloud断路器组件 Hystrix 的舱壁模式
查看>>
mybatis之大于、小于、大于等于和小于等于的写法
查看>>
如何实现 Oracle 的自增序列,两步轻松搞定
查看>>
不要等到Oracle磁盘空间满了,再去查表空间使用情况
查看>>
Hive SQL常用命令总结,大数据开发人员按需收藏
查看>>
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils
查看>>