Python 中有非常方便高效的排序函数,下面主要介绍如何sort/sorted对list,dict进行排序。

1. 用list.sort /sorted 对list of tuples中第二个值进行排序

>>> import operator

>>> a=[(‘a‘,3),(‘b‘,2),(‘c‘,1)]

>>> import operator

>>> l=[(‘a‘,3),(‘b‘,2),(‘c‘,1)]

>>> l.sort(key=operator.itemgetter(1))

>>> l

[(‘c‘, 1), (‘b‘, 2), (‘a‘, 3)]

>>> sorted(l, key=operator.itemgetter(1))

[(‘c‘, 1), (‘b‘, 2), (‘a‘, 3)]

>>> sorted(l, key=operator.itemgetter(0))

[(‘a‘, 3), (‘b‘, 2), (‘c‘, 1)]

list.sort 和sorted 的区别:sort是list序列的一个方法,而sorted是内建函数

list.sort: 没有返回值,而且 sort作为序列的内部函数,调用完后会对调用的序列进行排序

sorted:函数不改变参数,并返回排好序的序列副本

在python开发文档中对sort和sorted都有详细介绍,也可以调用help函数来查看两者的区别

>>>help(list.sort)

Help on method_descriptor:

sort(...)

L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*

>>>help(sorted)

Help on built-in function sorted inmodule builtins:

sorted(iterable,/, *, key=None, reverse=False)

Return a new list containing all itemsfrom the iterable inascending order.

A custom key function can be supplied to customize the sort order,andthe

reverse flag can be set to request the resultin descending order.

2. 除了用operator之外我们也可以用lambda

>>> l.sort(key=lambda x:x[1])>>>l

[(‘c‘, 1), (‘b‘, 2), (‘a‘, 3)]

3. 用sorted来对ditionary进行排序

>>> l = {‘a‘: 3,"b": 2,"c": 1}

>>> sl_key = sorted(l.items()) #Sort by key

>>> sl_key

[(‘a‘, 3), (‘b‘, 2), (‘c‘, 1)]

>>> sl_value = sorted(l.items(),key=lambda x:x[1]) #Sort by value

>>> sl_value

[(‘c‘, 1), (‘b‘, 2), (‘a‘, 3)]

>>> sl_value = sorted(l.items(),key=lambda x:x[1],

reverse=True) #Sort by value Backwards

>>> sl_value

[(‘a‘, 3), (‘b‘, 2), (‘c‘, 1)]

>>> sl_value = sorted(l.items(),key=lambda x:(x[1],x[0]),

reverse=True) #Sort by value then by Key

>>> sl_value

[(‘a‘, 3), (‘b‘, 2), (‘c‘, 1)]

python lambda函数两个列表大小关系_python学习 -- operator.itemgetter(), list.sort/sorted 以及lambda函数...相关推荐

  1. python lambda函数两个列表大小关系_python lambda结合列表推导式?

    func1 = [lambda x:x*i for i in range(10)] [f1(2) for f1 in func1] [18, 18, 18, 18, 18, 18, 18, 18, 1 ...

  2. python找出两个列表不同元素_python 找出两个列表的相同元素与不同元素

    python 找出两个列表的相同元素与不同元素,用了以下几种方法 1. 通过set 集合 list1 = [1,2,3] list2=[2,3,4] set1 = set(list1) set2 = ...

  3. python中简述对象和类的关系_Python学习笔记(七)对象和类

    什么是对象 Python中所有的数据都是以对象的形式存在,无论是简单的数字类型还是复杂的代码模块.在Python中,当我们想要创建属于自己的对象或者修改已有对象的行为时,才需要关注对象的内部实现细节. ...

  4. python字符串的方法和列表的方法_Python学习笔记字符串操作之join()和split()方法,列表转字符串,字符串转列表...

    随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...

  5. python有哪两种表现形式小练笔_Python学习小练笔—文本进度条

    1.简单文本进度条 import time scale=10 print("-----执行开始-----") for i in range(scale+1): a,b='**'*i ...

  6. 如何在Python中串联两个列表?

    如何在Python中串联两个列表? 例: listone = [1, 2, 3] listtwo = [4, 5, 6] 预期结果: >>> joinedlist [1, 2, 3, ...

  7. python 两个列表比较_如何在Python中比较两个列表

    python 两个列表比较 In this article, we will understand the different ways to compare two lists in Python. ...

  8. Python实现比较两个列表(list)范围

    Python实现比较两个列表(list)范围 有一道题: 比较两个列表范围,如果包含的话,返回TRUE,否则FALSE. 详细题目如下: Create a function, this functio ...

  9. python比较两个列表不同部分_Python实现比较两个列表(list)范围

    有一道题: 比较两个列表范围,如果包含的话,返回TRUE,否则FALSE. 详细题目如下: Create a function, this function receives two lists as ...

最新文章

  1. 《数字城堡》大片制作
  2. discuz!x2.5登录管理面板
  3. 命令行选项解析函数:getopt()
  4. 十年后 AI 是什么样?
  5. php系统维护,软件系统维护主要包含什么
  6. Hades:移动端静态分析框架
  7. JavaEE实战班第十二天
  8. Edge好用么?几条你不知道的Edge小技巧
  9. 细胞增殖曲线_【音频】第6章 细胞的生命历程 第1节 细胞的增殖
  10. SpringBoot整合springDataJPA
  11. OLAP-presto-大数据Week13-DAY-presto
  12. 博世 BMI160 6轴传感器 数据手册datasheet
  13. 微信小程序内容组件图标 icon
  14. css中鼠标手,css各种鼠标手型集合
  15. matlab求系统状态时间响应,MATLAB求解系统零状态响应可以调用( )函数。
  16. C# windows窗口应用程序切换主界面的显示内容
  17. es6利用Reflect实现观察者模式,并详解Reflect对象
  18. python爬虫-豆瓣喜剧电影评分top100的电影-小林月
  19. Java中的基本数据类型是哪些_java中基本数据类型有哪些
  20. 漫画软件开发:EasyComic

热门文章

  1. Golang手册与常用包手册
  2. python是谁维护的_Python 库从开发到维护
  3. html表单php连接mysql数据库,PHP 连接MySQL数据库
  4. xposed框架在分机安装失败_免root用Xposed框架!安卓用户一定要学会
  5. arcgis 分区 属性值_如何使用ArcGIS计算分区河流(管线)总长度
  6. devc代码补全没效果_从零开始写文本编辑器(二十八):自动补全(上)
  7. c++中有表示正无穷的数吗_阅读:贯穿编程人生CSAPP[2]信息表示
  8. a标签传值到另一个页面_Vue组件传值与通信集合
  9. linux内核挂载nfs,Linux 挂载NFS文件系统
  10. 【java】带时区的时间格式化