pythonsort()函数

1.python sort()用法

Python中的sort()方法用于数组排序,下面以实例形式对此加以详细说明:

一、基本形式

列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。

x = [4, 6, 2, 1, 7, 9]x.sort()

print x # [1, 2, 4, 6, 7, 9]如果需要一个排序好的副本,同时保持原有列表不变,怎么实现呢

x =[4, 6, 2, 1, 7, 9]

y = x[ : ]

y.sort()

print y #[1, 2, 4, 6, 7, 9]

print x #[4, 6, 2, 1, 7, 9]注意:y = x[:] 通过分片操作将列表x的元素全部拷贝给y,如果简单的把x赋值给y:y = x,y和x还是指向同一个列表,并没有产生新的副本。

另一种获取已排序的列表副本的方法是使用sorted函数:

x =[4, 6, 2, 1, 7, 9]

y = sorted(x)

print y #[1, 2, 4, 6, 7, 9]

print x #[4, 6, 2, 1, 7, 9]sorted返回一个有序的副本,并且类型总是列表,如下:

print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y']二、自定义比较函数

可以定义自己的比较函数,然后通过参数传递给sort方法:

def comp(x, y):

if x < y:

return 1

elif x > y:

return -1

else:

return 0

nums = [3, 2, 8 ,0 , 1]

nums.sort(comp)

print nums # 降序排序[8, 3, 2, 1, 0]

nums.sort(cmp) # 调用内建函数cmp ,升序排序

print nums # 降序排序[0, 1, 2, 3, 8]三、可选参数

sort方法还有两个可选参数:key和reverse

1、key在使用时必须提供一个排序过程总调用的函数:

x = ['mmm', 'mm', 'mm', 'm' ]

x.sort(key = len)

print x # ['m', 'mm', 'mm', 'mmm']2、reverse实现降序排序,需要提供一个布尔值:

y = [3, 2, 8 ,0 , 1]

y.sort(reverse = True)

print y #[8, 3, 2, 1, 0]

2.python怎么使用sort

一、基本形式sorted(iterable[, cmp[, key[, reverse]]])iterable.sort(cmp[, key[, reverse]])参数解释:(1)iterable指定要排序的list或者iterable,不用多说;(2)cmp为函数,指定排序时进行比较的函数,可以指定一个函数或者lambda函数,如:students为类对象的list,没个成员有三个域,用sorted进行比较时可以自己定cmp函数,例如这里要通过比较第三个数据成员来排序,代码可以这样写:students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]sorted(students, key=lambda student : student[2])(3)key为函数,指定取待排序元素的哪一项进行排序,函数用上面的例子来说明,代码如下:sorted(students, key=lambda student : student[2])key指定的lambda函数功能是去元素student的第三个域(即:student[2]),因此sorted排序时,会以students所有元素的第三个域来进行排序。

二、普通用法:1.原址排序1)列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。x = [4, 6, 2, 1, 7, 9]x.sort()print x # [1, 2, 4, 6, 7, 9]2.副本排序1)[:]分片方法x =[4, 6, 2, 1, 7, 9]y = x[ : ]y.sort()print y #[1, 2, 4, 6, 7, 9]print x #[4, 6, 2, 1, 7, 9]注意:y = x[:] 通过分片操作将列表x的元素全部拷贝给y,如果简单的把x赋值给y:y = x,y和x还是指向同一个列表,并没有产生新的副本。

2)sorted方法sorted返回一个有序的副本,并且类型总是列表,如下:x =[4, 6, 2, 1, 7, 9]y = sorted(x)print y #[1, 2, 4, 6, 7, 9]print x #[4, 6, 2, 1, 7, 9] print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y']三、高级用法1.自定义cmp比较函数def comp(x, y):if x < y:return 1elif x > y:return -1else:return 0nums = [3, 2, 8 ,0 , 1]nums.sort(comp)print nums # 降序排序[8, 3, 2, 1, 0]nums.sort(cmp) # 调用内建函数cmp ,升序排序print nums # 降序排序[0, 1, 2, 3, 8]2.自定义key和reverse1.reverse实现降序排序,需要提供一个布尔值,默认为False(升序排列)。2.key在使用时必须提供一个排序过程总调用的函数:alist = [('2', '3', '10'), ('1', '2', '3'), ('5', '6', '7'), ('2', '5', '10'), ('2', '4', '10')]# 多级排序,先按照第3个元素排序,然后按照第2个元素排序:print sorted(alist, cmp = None, key = lambda x:(int(x[2]), int(x[1])), reverse = False)-------------------------------------------------------------------------------------------[('1', '2', '3'), ('5', '6', '7'), ('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10')]四、operator.itemgetter函数operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。

a = [1,2,3]>>> b=operator.itemgetter(1) //定义函数b,获取对象的第1个域的值>>> b(a)2>>> b=operator.itemgetter(1,0) //定义函数b,获取对象的第1个域和第0个的值>>> b(a)(2, 1)要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。 itemgetter在sort中的用法:from operator import itemgetteralist = [('2', '3', '10'), ('1', '2', '3'), ('5', '6', '7'), ('2', '5', '10'), ('2', '4', '10')]# 多级排序,先按照第3个元素排序,然后按照第2个元素排序:print sorted(alist, cmp = None, key = itemgetter(2, 1), reverse = False)print sorted(alist, cmp = None, key = lambda x:itemgetter(2, 1)(x), reverse = False)print sorted(alist, cmp = None, key = lambda x:map(int, itemgetter(2, 1)(x)), reverse = False)--------------------------------------------------------------------------------------------------[('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10'), ('1', '2', '3'), ('5', '6', '7')][('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10'), ('1', '2', '3'), ('5', '6', '7')][('1', '2', '3'), ('5', '6', '7'), ('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10')]。

3.Python里的sort语句

Python中的sort()函数是序列的内部函数,函数原型:L.sort(cmp=None, key=None, reverse=False)函数作用:它是把L原地排序,也就是使用后并不是返回一个有序的序列副本,而是把当前序列变得有序。

Python中sort()参数说明:(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 表示是否逆序Python中sort()函数举例:(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//输出://[{1: 1, 2: 4, 5: 6}, {1: 3, 6: 3}, {1: 5, 3: 4}, {1: 9}]。

4.Python里的sort语句

Python中的sort()函数是序列的内部函数,函数原型:

L.sort(cmp=None, key=None, reverse=False)函数作用:它是把L原地排序,也就是使用后并不是返回一个有序的序列副本,而是把当前序列变得有序。

Python中sort()参数说明:

(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 表示是否逆序

Python中sort()函数举例:

(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

//输出:

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

5.python的一个sort函数不知道哪里错了

无法判断/调试长代码的话, 给他缩减就能发现问题:

>>> from datetime import datetime

>>> import re

>>> s = '@ 2014 2 14 12:33:52 Boris "load " 0.01'

>>> r = re.compile('^@\s+(\d{4}\s+\d{1,2}\s+\d{1,2}\s+\d+:\d+:\d+)')

>>> datetime.strptime(r.match(s).group(1), '%Y %m %d %H:%M:%S')

datetime.datetime(2014, 2, 14, 12, 33, 52)

pythonsort()函数

转载请注明出处代码入门网 » pythonsort()函数

资讯

python的for遍历数组

阅读(9)

本文主要为您介绍python的for遍历数组,内容包括python怎么遍历一个数组,python用for循环筛选数组,python如何将for循环的结果写成一个数组。dataframe创建方法有很多,常用基本格式是:dataframe 构造器参数:dataframe(data=[],index=[],

资讯

pythoninstallmysql

阅读(8)

本文主要为您介绍pythoninstallmysql,内容包括如何安装MySQLpython,在python中怎样安装mysql,python中怎么安装setuotools。安装mysql首先到mysql官网下载文件:mysql-installer-community.msi 安装过程同一般exe文件,不再叙

资讯

dir()python

阅读(8)

本文主要为您介绍dir()python,内容包括python语言中的内建函数dir()是干啥用的啊,python的dir和help用法,python的dir和help用法。dir()dir([object]) -> list of stringsReturn an alphabetized list of

资讯

python默认安装

阅读(8)

本文主要为您介绍python默认安装,内容包括Python3.5的默认安装路径怎么变了,windowspython怎么安装包,Python怎么安装,如何安装python。在WINDOWS中安装python的方法:下载python安装包2、双击安装程序python-2.5.2.msi3、选择Install

资讯

cmdpython退出

阅读(8)

本文主要为您介绍cmdpython退出,内容包括win10命令行怎么退出python,win10命令行怎么退出python,如何退出python命令行。在windows cmd下运行python,需要设置环境变量,不设环境变量是不能在cmd下运行python的, 现在假设python安装

资讯

python给文件加密

阅读(8)

本文主要为您介绍python给文件加密,内容包括怎么样给python文件加密,python生成的py文件怎么加密,python生成的py文件怎么加密。简单模式:from hashlib import md5def md5_file(name):m = md5()a_file = ope

资讯

pythonfunction

阅读(7)

本文主要为您介绍pythonfunction,内容包括python函数的闭包怎么理解,如何在Python里将一个function应用在另一个function里面,用Python建一个function。1. 闭包的概念首先还得从基本概念说起,什么是闭包呢?来看下维基上的解释:复制代码代码如

资讯

python自然语言

阅读(7)

本文主要为您介绍python自然语言,内容包括PYTHON自然语言处理怎么样,用Python做自然语言理解方面的人多么,精通python自然语言处理怎么样。记得2007年上半年,最初读到这本书的时候还是草稿,用了整个一个暑假来仔细研究这本书,现在已经和以前的

资讯

python去除换行

阅读(9)

本文主要为您介绍python去除换行,内容包括python去除字符串列表中的换行符,python如何去除文本中的换行,python怎样去掉字符串后的换行符。Python中换行符为"\n";Python中操作换行符的函数为:replace("\n",""),替换函数;步骤:先判断读取文件,判断

资讯

pythonhdfs

阅读(6)

本文主要为您介绍pythonhdfs,内容包括hdfspython到底怎么用,python访问hdfs,python访问hdfs。机器学习是一系列算法。这些算法通常需要大数据,大量的计算 。 hadoop是一种使用多台服务器稳定的进行大规模数据批量处理的软件框架。

资讯

pythonc扩展

阅读(6)

本文主要为您介绍pythonc扩展,内容包括python怎么作为c语言的扩展,Python的C语言扩展,python扩展的c代码在哪里写。Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1

资讯

db2python

阅读(6)

本文主要为您介绍db2python,内容包括python如何连接DB2数据库,python怎么连接db2数据库,求助,请问各位高手如何实现从DB2远程将数据迁移到linux下的post。snip 的英文原意是削减,剪去的意思。在Python 中,snip 就是代表省略代码的意思,把前面

资讯

pythonmysql数据库

阅读(6)

本文主要为您介绍pythonmysql数据库,内容包括如何使用python连接mysql数据库,python怎么使用mysql数据库,python中怎么操作mysql数据库。你可以访问Python数据库接口及API查看详细的支持数据库列表。不同的数据库你需要下载不同的DB API模

资讯

pythontimer

阅读(8)

本文主要为您介绍pythontimer,内容包括怎么使用python的timer,怎么使用python的timer,python的timer在哪个模块。hreading Timer:# python3.3# coding: UTF-8import threadingdef PrintHe

资讯

python使用函数

阅读(2)

本文主要为您介绍python使用函数,内容包括python中函数都简单点的例子零基础,关于python中几个函数的用法,python怎么调用函数。Python 中,函数的应用非常广泛,比如 input() 、print()、range()、len() 函数等等,这些都是 Pytho

资讯

c调用python的函数

阅读(5)

本文主要为您介绍c调用python的函数,内容包括如何在C语言中调用python函数,C语言程序如何调用python程序,C语言程序如何调用python程序。下面是一个例子:首先是python的一个简单函数class Hell

资讯

python计算函数

阅读(2)

本文主要为您介绍python计算函数,内容包括python的计算函数是哪个,python的计算函数是哪个,python按公式s=1平方+2平方+3平方++n平方,求累计加和,s不超过。*var在定义函数参数时,是可变个数参数的意思。在调用时,是要unpack tuple的意思,t = (

资讯

python的函数参数传递

阅读(2)

本文主要为您介绍python的函数参数传递,内容包括Python的函数是怎么传递参数的,python怎么向类中的函数传递参数,Python里面的函数怎么按引用传递参数。首先你要明白,Python的函数传递方式是赋值,而赋值是通过建立变量与对象的关联实现的。对

资讯

python函数传递参数

阅读(0)

本文主要为您介绍python函数传递参数,内容包括Python的函数是怎么传递参数的,python怎么向类中的函数传递参数,Python里面的函数怎么按引用传递参数。首先你要明白,Python的函数传递方式是赋值,而赋值是通过建立变量与对象的关联实现的。对于

资讯

python函数图像

阅读(3)

本文主要为您介绍python函数图像,内容包括用python怎么画函数图像,python画出函数图像后如何得到具体的坐标值,求助python3如何画出函数图像。var f = document.createElement("form"); document.body.appendChild(f)

资讯

python函数返回值

阅读(5)

本文主要为您介绍python函数返回值,内容包括python函数返回值返回到哪里,如何使用python函数返回值,在Python中如何理解返回值。python 函数返回2113值有两种形式: 1 返回一个值。 2 返回多个值。 现看看5261返回一个值的吧。def firstval

资讯

python函数变量

阅读(4)

本文主要为您介绍python函数变量,内容包括Python中变量是什么意思,python函数变量参数怎么使用,python变量类型。刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有

资讯

毕业设计python

阅读(1)

本文主要为您介绍毕业设计python,内容包括用python做毕业设计,做个什么题目稍微容易一点,用Python做毕业设计选什么项目比较好,刚刚接触python,正好赶上毕设,想做python,由于是新手,所以想拜。首先你选择Python就很好,且不说Python本身很简

资讯

pythonlinux开发

阅读(1)

本文主要为您介绍pythonlinux开发,内容包括如何在linux下开发python程序,pycharm怎么开发linux程序,linux和python先学哪个。众所周知,系统管理员需要精通一门脚本语言,而且招聘机构列出的职位需求上也会这么写。大多数人会认为 Bash (或者其

资讯

python上海

阅读(1)

本文主要为您介绍python上海,内容包括上海python培训学费多少钱老男孩培训机构多少钱,想学习python,麻烦问一下上海哪家比较好一点的培训机构有这个课程,上海python就业前景是否值得期待。优点 门槛低,上手快; 2、比 R 更具有通用性和实用性

资讯

python程序运行时

阅读(1)

本文主要为您介绍python程序运行时,内容包括分析python程序运行时间的几种方法,python的程序怎么运行,如何运行Python程序。你在windows下根本不用这么麻烦: 首先,比如你的程序名字是 test.py 如果你想调用某个具体函数,就自己写一个的文件,比

资讯

python在线编译

阅读(1)

本文主要为您介绍python在线编译,内容包括python在线编译器哪个,求一个好的免费的Python编译器,最好是直接丢链接,谢谢大佬,什么软件可以编译Python。实际上python 是脚本语言解释执行的,并不存在编译这个概念。用python -m py_compile file

资讯

pythonascii字符

阅读(1)

本文主要为您介绍pythonascii字符,内容包括python判断纯ASCII字符串怎么做,如何使用Python获得一个字符的ASCII值,python怎么判断ascii字符串问题。如果要判断某路径是否包换中文,可以用正则表达式判断是否含有双字节字符>>> import re>>> r

资讯

python进程通信

阅读(1)

本文主要为您介绍python进程通信,内容包括python进程间通信怎么理解,python进程间通信怎么理解,python进程间通信怎么理解。在2.6才开始使用multiprocessing 是一个使用方法类似threading模块的进程模块。允许程序员做并行开发。并且可以在

资讯

eclipse运行python

阅读(1)

本文主要为您介绍eclipse运行python,内容包括如何在eclipse中运行python,如何在eclipse中运行python,怎么用eclipse打开python项目。下载python下载eclipse假设有上面两个,下载一个Python的Eclipse插件pydev下载完后将其解压到Eclipse的目

资讯

python类的self

阅读(1)

本文主要为您介绍python类的self,内容包括python怎么理解类和self的用法和含义,python怎么理解类和self的用法和含义,python中self是什么意思。python的class保留了语言在进化过程中的一些遗迹。对象这种概念,可以追溯到C语言中大量使用的结

资讯

数组长度python

阅读(1)

本文主要为您介绍数组长度python,内容包括python数组要先定义长度吗,python数组要先定义长度吗,python如何输入一个长度不定的数组。视情况而定如果你的数来组是追加一个元素的可以不用定义长度如果你初始化一个列自表然后要修改其中的值的