关于sorted:
 
help里给的解释

>>> help(sorted)
Help on built-in function sorted in module __builtin__: sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
一般,sorted 对字符串排序,ASCII比较大小的时候,是比较两个数中的第一个字符
ASCII码的大小规则,0-9<A-Z<a-z:  
由于'Z' < 'a',结果,大写字母Z会排在小写字母a的前面
忽略大小写来比较两个字符串,实际上就是先把字符串都变成大写(或者都变成小写),再比较。
这样,我们给sorted传入key函数,即可实现忽略大小写的排序:
#Python lower() 方法转换字符串中所有大写字符为小写
#这一步把大写变小写,再sorted
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
['about', 'bob', 'Credit', 'Zoo']
Make a Test:
 from operator import itemgetter 
students = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
print(sorted(students,key=itemgetter(0)))#key值设置成第一个域来排序
print(sorted(students, key=lambda t: t[1]))#key值设置称t[1],第二个域来排序
print(sorted(students, key=lambda t: t[0],reverse=True))#key值设置成t[0],第一个域来排序,注意这有个反转,反转就是把顺序倒过来
  print(sorted(students, key=itemgetter(1), reverse=True))

输出结果:

>>>[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
>>>[('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]
>>>[('Lisa', 88), ('Bob', 75), ('Bart', 66), ('Adam', 92)]
>>>[('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]
>>> help(sorted)
Help on built-in function sorted in module __builtin__: sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
 
 
其中key的参数为一个函数或者lambda函数,如下例子对lamdba的解释,我对lamdba的理解就是这东西是自定义函数

>>> r=lambda x,y:x*y   #实现x*y,
>>> r(2,3)
6
itemgetter是从operator里面倒进来的,可以用来当key的参数
如果要比较一个班学生的成绩,但是同时有B同学,一个人得12分,一个人10分,那就来上两个域进行排序。
如下:
根据第二个域和第三个域进行排序
#key值设置成第一个域来排序
a = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
print sorted(a, key=itemgetter(1,2))
>>>[('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]
但是姓名没有排序,所以给第一个域来一波操作
 print  sorted(a, key=itemgetter(0,1,2))
>>>[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

python关于sorted里面key,reverse以及lamdba,operator这几个鸟人的更多相关文章

  1. Python中sorted(iterable, /, *, key=None, reverse=False)的参数中的斜杆是什么意思?

    通过help(sorted)查看sorted的帮助文档,显示如下: Help on built-in function sorted in module builtins: sorted(iterab ...

  2. Python中sorted(iterable, *, key=None, reverse=False)函数参数定义中的独立星号(*)的含义

    老猿在 <Python中函数的参数带星号是什么意思?>中介绍了Python函数中参数带星号的含义,而在实际使用和Python的标准文档中,会看到某写函数(如sorted(iterable, ...

  3. [转载] python的sorted函数对字典按key排序和按value排序

    1.sorted函数按key值对字典排序 先来基本介绍一下sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参 ...

  4. 【Python】 sorted函数

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

  5. python的sorted

    读入后,要进行组内排序,按groupseq字段排序后,然后统计前后两个项的个数,累加到全局. sorted函数使用如下: def sortlist(alllist):     sorted_key1_ ...

  6. python中sorted()和set()去重,排序

    前言 在看一个聊天机器人的神经网络模型训练前准备训练数据,需要对训练材料做处理(转化成张量)需要先提炼词干,然后对词干做去重和排序 words = sorted(list(set(words))) 对 ...

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

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

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

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

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

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

随机推荐

  1. 具体解释C++引用——带你走进引用的世界

     一.介绍引用 首先说引用是什么,大家能够记住,引用就是一个别名,比方小王有个绰号叫小狗.他的妈妈喊小狗回家吃饭.那就是在喊小王回家吃饭. 接下来我们用两行代码来声明一个引用(就拿小王和小狗来说吧 ...

  2. Ubuntu系统中中文的设置

    这几天心血来潮,在实习公司真的没什么事情做,在学长的推荐下就学习了一下Ubuntu系统,感觉还是挺不错的,这个系统,所以我也推荐刚开始学习liunx系统的妹子们也可以先学一下这个. 1>你可以在 ...

  3. sicily 1000. LinkedList

    Description template <typename E> class LinkedList { private:     // inner class: linked-list ...

  4. ACM-ICPC 2016 Qingdao Preliminary Contest

    A I Count Two Three I will show you the most popular board game in the Shanghai Ingress Resistance T ...

  5. IBM小机的开机步骤

    IBM小机的开机步骤 以下以 IBM P570 小机包含静态逻辑分区(LPAR) 的 Oracle9i RAC环境为例进行讨论 1. 设备(小机.存储.光交......)加电 2. 启动存储 3. 启 ...

  6. zabbix2.4.5安装zatree插件

    一.关于zatree zatree 是来自国内58公司开发的监控软件zabbix的一个插件,主要功能是提供host group的树形展示和在item里指定关键字查询及数据排序. 项目地址:https: ...

  7. spring-data-jpa 新增 修改 删除 查询 分页

      1.查询所有数据 findAll() 2.分页查询 findAll(new PageRequest(0, 2)) 3.根据id查询 findOne() 4.根据实体类属性查询: findByPro ...

  8. Systemd曝3漏洞,大部分Linux将受到攻击

    Linux 系统与服务管理工具 Systemd 被曝存在 3 大漏洞,影响几乎所有 Linux 发行版. Systemd 是 Linux 系统的基本构建块,它提供了对系统和服务的管理功能,以 PID ...

  9. UVALive 2659 数独 DLX模板

    建图: 从1到16枚举所有的行.列上放的数. 代码: #include <iostream> #include <cstdio> #include <cstring> ...

  10. vue2.0学习教程

    十分钟上手-搭建vue开发环境(新手教程)https://www.jianshu.com/p/0c6678671635 如何在本地运行查看github上的开源项目https://www.jianshu ...