by 莫亚菜

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])))

Python: sort,sorted,OrderedDict的用法的更多相关文章

  1. Python中sorted()方法的用法

    Python中sorted()方法的用法 2012-12-24 22:01:14|  分类: Python |字号 订阅 1.先说一下iterable,中文意思是迭代器. Python的帮助文档中对i ...

  2. [转].Python中sorted函数的用法

    [Python] sorted函数 我们需要对List.Dict进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序,在本地进行排序,不返回副 ...

  3. Python中sorted函数的用法(转)

    [Python] sorted函数 我们需要对List.Dict进行排序,Python提供了两个方法 对给定的List L进行排序, 方法1.用List的成员函数sort进行排序,在本地进行排序,不返 ...

  4. python sort() sorted() 与argsort()函数的区别

    1.python的内建排序函数有 sort.sorted两个 sort函数只定义在list中,sorted函数对于所有的可迭代序列都可以定义. for example: ls = list([5, 2 ...

  5. python中sorted()函数的用法

    一. 定义 sorted()函数对所有可迭代的对象进行排序操作 二. 语法 sorted(iterable [, key[, reverse]]]) iterable:可迭代对象 key:主要是用来进 ...

  6. python sort() sorted()的区别

    sorted不保存 sort保存:

  7. python——掌握sorted函数的用法

    看本篇文章的前提是掌握 00函数的基本概念.01函数参数传递方式 可参考本人博客文章 sorted函数 是一个内建函数,接收一个可迭代对象,按照指定类型.指定顺序进行排序,特点是返回一个新的列表,不改 ...

  8. Python中sorted()方法

    Python中sorted()方法的用法 1.先说一下iterable,中文意思是迭代器. Python的帮助文档中对iterable的解释是:iteralbe指的是能够一次返回它的一个成员的对象.i ...

  9. python sort和sorted函数

    sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作. list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 ...

随机推荐

  1. 转一篇Unity的相机动画控制

    最近真是忙,连研究细看的时间都没有了,原帖地址:https://alastaira.wordpress.com/2013/11/08/smooth-unity-camera-transitions-w ...

  2. STM32 (战舰)

    一.战舰STM32 1.引脚描述表---有ft 兼容5V 2.原理图----有ADC,不兼容5V 3.(1)学会基本外设:GPIO输入输出,外部中断,定时器,串口. (2)学会外设接口:SPI IIC ...

  3. 爬虫获取邮箱,存入数据库,发送邮件java Mail

    在网页上获取邮箱: package com.my.test; import java.io.BufferedReader; import java.io.InputStreamReader; impo ...

  4. oracle-day1

    今天的学习内容是oracle产品的三种安装方式,还有使用dbca静默建库 oracle产品的三种安装方式分别为: 1.图形化(Java向导)安装引导 2.使用应答文件静默安装 3.直接将装好的orac ...

  5. 如何改变tableview的section的颜色

    方法一:调用 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ UIV ...

  6. Mybatis + SpringMVC + Maven实现分页查询

    使用Mybatis + Maven + SpringMVC 运行时,突然被需要分页查询的功能给难住了 这里推荐采用的插件是PageHelper这个插件,使用起来十分方便.该插件支持以下数据库: Ora ...

  7. jquery 设置焦点

    function CheckForm() { var classLevel = $("#classLevel").val(); var re = /^[1-9][0-9]*$/; ...

  8. HTTP协议学习---(九)cookie

    Cookie是HTTP协议中非常重要的东西, 之前拜读了Fish Li 写的[细说Cookie], 让我学到了很多东西.Fish的这篇文章写得太经典了. 所以我这篇文章就没有太多内容了. 最近我打算写 ...

  9. 让webstorm支持avalon语法自动补全

    在file菜单下选择Settings,选择Editor ——> Inspections ——> Html ——> Unknown HTML tag attibute添加以下标签ms- ...

  10. java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'XXXXX' bean

    今天启动srpingmvc项目的时候出现了这个异常, 原因: 在同个项目中,我复制了其中一个 Controller 作为备份 却忘记修改  @RequestMapping("/xxx&quo ...