python将列表中反序输出_python中sorted怎么反序排列

2017-10-30 回答

【python】 sorted函数

我们需要对list、dict进行排序,python提供了两个方法

对给定的list l进行排序,

方法1.用list的成员函数sort进行排序,在本地进行排序,不返回副本

方法2.用built-in函数sorted进行排序(从2.4开始),返回副本,原始输入不变

--------------------------------sorted---------------------------------------

>>> help(sorted)

help on built-in function sorted in module __builtin__:

sorted(...)

sorted(iterable, cmp=none, key=none, reverse=false) --> new sorted list

---------------------------------sort----------------------------------------

>>> help(list.sort)

help on method_descriptor:

sort(...)

l.sort(cmp=none, key=none, reverse=false) -- stable sort *in place*;

cmp(x, y) -> -1, 0, 1

-----------------------------------------------------------------------------

iterable:是可迭代类型;

cmp:用于比较的函数,比较什么由key决定;

key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;

reverse:排序规则. reverse = true 降序 或者 reverse = false 升序,有默认值。

返回值:是一个经过排序的可迭代类型,与iterable一样。

参数说明:

(1) cmp参数

cmp接受一个函数,拿整形举例,形式为:

def f(a,b):

return a-b

如果排序的元素是其他类型的,如果a逻辑小于b,函数返回负数;a逻辑等于b,函数返回0;a逻辑大于b,函数返回正数就行了

(2) key参数

key也是接受一个函数,不同的是,这个函数只接受一个元素,形式如下

def f(a):

return len(a)

key接受的函数返回值,表示此元素的权值,sort将按照权值大小进行排序

(3) reverse参数

接受false 或者true 表示是否逆序

例子:

(1)按照元素长度排序

l = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]

def f(x):

return len(x)

sort(key=f)

print l

输出:

[{1: 9}, {1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}]

(2)按照每个字典元素里面key为1的元素的值排序

l = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]

def f2(a,b):

return a[1]-b[1]

l.sort(cmp=f2)

print l

. 对由tuple组成的list排序

python代码

>>> students = [('john', 'a', 15), ('jane', 'b', 12), ('dave', 'b', 10),]

用key函数排序:返回由tuple组成的list

python代码

>>> sorted(students, key=lambda student : student[2]) # sort by age

[('dave', 'b', 10), ('jane', 'b', 12), ('john', 'a', 15)]

用cmp函数排序

python代码

>>> sorted(students, cmp=lambda x,y : cmp(x[2], y[2])) # sort by age

[('dave', 'b', 10), ('jane', 'b', 12), ('john', 'a', 15)]

用 operator 函数来加快速度,

python代码

>>> from operator import itemgetter, attrgetter

>>> sorted(students, key=itemgetter(2))

用 operator 函数进行多级排序

python代码

>>> sorted(students, key=itemgetter(1,2)) # sort by grade then by age

[('john', 'a', 15), ('dave', 'b', 10), ('jane', 'b', 12)]

2. 对由字典排序 ,返回由tuple组成的list,不再是字典。

python代码

>>> d = {'data1':3, 'data2':1, 'data3':2, 'data4':4}

>>> sorted(d.iteritems(), key=itemgetter(1), reverse=true)

[('data4', 4), ('data1', 3), ('data3', 2), ('data2', 1)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 判断鼠标按下_Simulink(其他校验模块)+Matlabgui(鼠标响应事件)+Stateflow汽车运动逻辑状态(二)...

1 SimulinkSimulink-其他校验模块 如下图所示为一些其他的校验模块,分别为声明模块,离散梯度模块,输入分辨率检测模块;声明模块:当输入值非零时检测通过,当输入值中包含有0时,检测模块报错。…

鸿蒙电脑操作系统最新消息,5G专家预测:7年后鸿蒙将成全球第一大操作系统

在公布两年之后,华为的鸿蒙系统历尽千难万险,蓄势待发,即将在6月2日的线上发布会上正式发布。对于鸿蒙的前景,通信行业的 5G 专家项立刚在接受采访中,在谈到对鸿蒙的看法时,他表示他相信 7 年后鸿蒙会成为全…

vivado顶层模块怎么建_【第2040期】Node 模块化之争:为什么 CommonJS 和 ES Modules 无法相互协调...

前言又到周五了。今日早读文章由Shopee周雨楠翻译授权分享。周雨楠,Shopee金融事业群前端研发,自主学习前端技术3年,喜爱各类数字媒体技术、创意设计,多次参与翻译工作。福利:有两张门票,有需要的跟情封联系…

centos7 转换为lvm_(建议收藏)CentOS7挂载未分配的磁盘空间以及LVM详细介绍

简述本文主要介绍CentOS7下如何挂载未分配磁盘空间的详细操作步骤。LVMLVM,逻辑卷管理,英文全称Logical Volume Manager,是Linux环境下对磁盘分区进行管理的一种机制。是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽…

基于python的图书管理系统测试步骤_Django admin实现图书管理系统菜鸟级教程完整实例...

Django 有着强大而又及其易用的admin后台,在这里,你可以轻松实现复杂代码实现的功能,如搜索,筛选,分页,题目可编辑,多选框. 简单到,一行代码就可以实现一个功能,而且模块之间耦合得相当完美. 不信,一起来看看吧!?用Django实现管理书籍的系统,并能在前台界面对书籍进行增删查改…

c# image转换为bitmap_Python PIL.Image与numpy.array之间的相互转换

前言有时我们使用PIL库读入图像数据后需要查看图像数据的维度,比如shape,或者有时我们需要对图像数据进行numpy类型的处理,所以涉及到相互转化,这里简单记录一下。方法当使用PIL.Image.open()打开图片后,如果要使用img…

计算机网络互联设备功能,计算机网络互联设备简介

一、网卡v 网络适配器,俗称网卡(NIC,Network InterfaceCard 或 Ethernet network card ) 原理:• 工作在OSI/RM中数据链路层的设备– 是局域网接入设备,单机与网络间架设的桥梁 特征:• MACaddress:– uniq…

python求两数之和的命令_python计算两个数的百分比方法

工作中遇到了要计算两个数百分比的问题,python 2.7 环境。 代码: #!/usr/bin/env python #function: 计算百分比 #USAGE: python calculator.py num1 num2 import sys asys.argv[1] afloat(a) bsys.argv[2] bfloat(b) print "%.2f%%" % (a/b*1…

安全使用计算机事例,计算机安全案例分析.ppt

您所在位置:网站首页 > 海量文档&nbsp>&nbsp资格/认证考试&nbsp>&nbsp安全工程师考试计算机安全案例分析.ppt35页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。下载提示1.本站不保证该用户上传的文档完整性&#…

bootstrap外不引用连接_网络编程Netty IoT百万长连接优化,万字长文精讲

IoT是什么The Internet of things的简称IoT,即是物联网的意思IoT推送系统的设计比如说,像一些智能设备,需要通过APP或者微信中的小程序等,给设备发送一条指令,让这个设备下载或者播放音乐,那么需要做什么才…

计算机基础知识与程序设计二,计算机基础与程序设计.doc

计算机基础与程序设计.doc (17页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!14.9 积分《计算机基础与稈序设计》是高等教冇H学考试工科备专业的基础课。这门课也是大部分学 生学习计算…

为什么python 为什么没有接口_python没有接口吗

接口只是定义了一些方法,而没有去实现,多用于程序设计时,只是设计需要有什么样的功能,但是并没有实现任何功能,这些功能需要被另一个类(B)继承后,由 类B去实现其中的某个功能或全部功…

画直线_在鸡面前画一条直线,为什么它会晕?西瓜视频这知识好冷告诉答案

为什么世界有那么多的未解之谜,我们无从而知,今天我们来探讨一下在鸡面前画条直线为什么会晕?你们知道吗?今天西瓜视频这知识好冷告诉你们答案,帮助你们掌握生活中所不知道的涨知识,增加我们的知识库。优秀…

python秒数变分钟_python时间时分秒与秒数的互相转换

受到Unix时间戳的启发,我发现时间转成秒数后会非常好处理,在程序当中不再是以字符串的形式处理,不管时间的加减还是获取随机的时间点都变得非常方便, 如果有需要,也很容易转换成需要的时间格式。 一:时间转…

它利用计算机和现代通信技术,现代通信技术复习概论

1-1 通信的工作方式有哪几种?1、按通信对象的数量分类:点与点通信、点到多点通信和多点到多点通信2、按消息传送方向与时间分类:单工通信,半双工通信和全双工通信3、按数字信号传输顺序分类:串行传输和并行传输1-2 试举例说明模拟…

永洪bi_案例分享!永洪BI助力知名三甲医院数字化转型升级

案例一:“新数据需求立刻看到结果”建院至今已有100余年的历史,现已发展成为集医疗、科研、教学为一体的某家三级甲等综合医院,通过永洪科技大数据平台,基于医院的HIS系统为数据源,分别从运营管理、药品管理、病例管理…

github mac 添加 ssh_计算机专业MAC操作技巧(二)

1、MAC 终端启动jupyter jupyter安装与配置就不赘述了,MAC终端启动jupyter有点独特。尝试了很多次都没有打开浏览器,把踩的坑总结一下:一直出现找不到浏览器的错误,在本地浏览器中一直打不开。(1)、首先先在…

计算机有必要报英语四级吗,我已工作了,现在有必要去考英语四级吗?还是 – 手机爱问...

2010-02-20有哪些是衡量好坏的重要指标呢?眼看就是春节,电视还没买回家,不是偷懒,是不晓得该如何抉择是好?需要网友帮忙。液晶显示不像PDP、CRT那样属于自发光显示。液晶面板也好,背光技术也罢。只是显示屏…

python分支结构说课_Python_3.8平台上的分支结构(模块.类.函数)_11

计算机 python语言_3.8平台上的分支结构(模块.类.函数)11上节说了,python程序有注释、缩进和程序主题。其应用软件由模块--文件*.py分割保存。模块中有变量、函数、类(数据与函数)等。模块是最基础的最小的结构要素单元。并用__main__模块演示了按照较规范的执行顺序…

计算机应用基础自主学习,《计算机应用基础》自主学习指导

本资料可供职业中学、高职及初学计算机基础的学生参考也可以供授课教师参考《计算机应用基础》自主学习指导一、课程内容、要求、目的1、本课程是一门有关计算机知识的入门课程,主要着重计算机的基础知识、基本概念和基本操作技能的学习和培养,并兼顾实用…