pythonsort复杂度(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语句

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

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 排序

下面是给你写的程序,用两个for循环语句进行排序,总体思路是提取new是true的先加进b这个列表中,然后再把剩下的加进去,这样b就是排序好的列表。

a = [{'id':1, 'new':u'false'}, {'id':2,'new':u'true'}, {'id':3,'new':u'false'}]b = []for i in a: if i['new'] == u'true': b.append(i)for i in a: b.append(i)print b因此输出结果是:[{'new': u'true', 'id': 2}, {'new': u'false', 'id': 1}, {'new': u'true', 'id': 2}, {'new': u'false', 'id': 3}]若不懂,请追问,望采纳。

5.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')]。

6.python 排序,sort和sorted的区别是什么

Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。

sorted(iterable,key=None,reverse=False),返回新的列表,对所有可迭代的对象均有效

sort(key=None,reverse=False) 就地改变列表 reverse:True反序;False 正序

Example1:

>>>sorted([1,5,3,2,9])

[1,2,3,5,9]

>>>a=[5,3,2,1,4]

>>>a.sort()

>>>a

[1,2,3,4,5] #若用list.sort()则list本身将被修改

>>>sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})

[1,2,3,4,5] #sorted()对所有的可迭代序列都有效

在python2.4开始,list.sort()和sorted()增加key参数来指定一个函数,此函数在每个元素比较前被调用。

Example2:

>>>sorted("This is a test string from Andrew".split(), key=str.lower) #加了key,忽略大小写

['a', 'Andrew', 'from', 'is', 'string', 'test', 'This'] #key=len按照长度进行排序

>>>sorted("This is a test string from Andrew".split()) #未加key,默认大写在前,小写在后

['Andrew', 'This', 'a', 'from', 'is', 'string', 'test']

更多的情况是用复杂对象的某些值来对复杂对象进行排序。

pythonsort复杂度

转载请注明出处代码入门网 » pythonsort复杂度(pythonsort用法)

资讯

python3nginxcentos(centos怎么装python3)

阅读(24)

本文主要为您介绍python3nginxcentos,内容包括Django对Python3系列版本的支持如何,centos怎么装python3,centos怎么装python3。在https://www.python.org/ftp/python/下找到您所需的python版本如https://www.pytho

资讯

pythondictdelete(python中字典用完了怎么删除)

阅读(30)

本文主要为您介绍pythondictdelete,内容包括python中字典用完了怎么删除,Python中如何删除字典元素,后台接口怎么通过python的requests.delete删除实例。您python中字典用完了为什么要删除呢?是想为了节省空间?那么,若dict_1 = {1:"abc", 2:"bcd",

资讯

OpenFOAMpython(怎么在python中安装opencv2)

阅读(23)

本文主要为您介绍OpenFOAMpython,内容包括StacklessPython到底是什么东东和Python什么关系,怎么设置python中open的buffering参数,怎么在python中安装opencv2。1.到文末下载OpenCV的安装包。其实这个安装包就是一个解压缩。2.在安装包解压

资讯

windowsmxnetpython(新人求助windows下netsnmp怎么连接Python)

阅读(21)

本文主要为您介绍windowsmxnetpython,内容包括如何装mxnet的python环境,mxnet下怎么进行pythontrain,新人求助windows下netsnmp怎么连接Python。由于需要练手,准备将nagios的bash shell/perl监控脚本改用python写,而监控机上yum安装的net-snm

资讯

pythonmissingprint(出现missingparenthesesiscallto'print'怎么解决)

阅读(19)

本文主要为您介绍pythonmissingprint,内容包括出现&#39;print&#39;怎么解决,Python出现错误,怎么解决,求解,python出现missingdocstring求高手帮忙。原因:“missing parentheses is call to print”是指程序错误,是由于系统出现错误而导致的,

资讯

mint安装python(如何在Ubuntu和LinuxMint上安装Python3.6.0)

阅读(18)

本文主要为您介绍mint安装python,内容包括如何在Ubuntu和LinuxMint上安装Python3.6.0,详解如何在Linux中安装最新的Python3.6版本,如何在ubuntu上安装python。步骤1 - 安装所需的包在安装Python之前,请使用以下命令来安装Python的先决条件。

资讯

pythonsqllike(SQL中like的用法)

阅读(33)

本文主要为您介绍pythonsqllike,内容包括SQL中like的用法,请问python有类似VB里面like的语句吗比如if&#39;aaa&#39;like&#39;*?a&#39;这种的,请问python有类似VB里面like的语句吗比如if&#39;aaa&#39;like&#39;*?a&#39;这种的。测试表.CREAT

资讯

pythonredis持久化(如何设置redis一秒钟持久化一次)

阅读(23)

本文主要为您介绍pythonredis持久化,内容包括python如何做持久化,如何设置redis一秒钟持久化一次,什么是Redis持久化。此外,我还讨论过较为常见的基于服务器的数据存储,比如MongoDB和CouchDB。每个数据存储都有其优势和劣势,特别是当应用于特

资讯

pythonturtle画花(如何用pythonturtle画玫瑰花)

阅读(27)

本文主要为您介绍pythonturtle画花,内容包括如何用pythonturtle画玫瑰花,如何用pythonturtle画心,怎么用python画玫瑰花,求大神贴代码,感激不尽。操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一种为运动命令,一种为画笔控制命令1. 运

资讯

python归一化(怎样利用Python进行图片分析)

阅读(25)

本文主要为您介绍python归一化,内容包括python怎么做均值方差归一化,怎样利用Python进行图片分析,python怎么做均值方差归一化。from PIL import Image ### 此处为导出包,注意字母大小写import os, os.path# 指明被遍历的文件

资讯

pythonlibrary中文版(如何安装Python图型处理库PythonImagingLibrary)

阅读(23)

本文主要为您介绍pythonlibrary中文版,内容包括pythonidle怎么调成中文版,有没有特别推荐的资料或教材LearningPython怎么样中文版,Python有没有中文版的。在Python中对图片的处理采用了PIL库,这个库可用于图片的一些常用操作,如改变尺寸、格

资讯

pythonosgeo安装(pythonanaconda怎么安装)

阅读(28)

本文主要为您介绍pythonosgeo安装,内容包括pythonanaconda怎么安装,QGIS中怎么安装Python第三方库,python怎么安装xlrd。Anaconda的安装 Anaconda的下载页参见官网下载,Linux、Mac、Windows均支持。安装时,会发现有两个不同版本的A

资讯

pythonselenium拖动(pythonseleniumdrag)

阅读(21)

本文主要为您介绍pythonselenium拖动,内容包括()和draganddropwithoffset()怎,Python+selenium+Chrome,滚动条的问题,怎么使用python进行selenium。用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右

资讯

python3sort函数(pythonsort用法)

阅读(19)

本文主要为您介绍python3sort函数,内容包括pythonsort()用法,Python里的sort语句,python怎么使用sort。Python中的sort()方法用于数组排序,下面以实例形式对此加以详细说明:基本形式列表有自己的sort方法,其对列表进行原址排序,既

资讯

pythonmongodbsort(pythonsort用法)

阅读(19)

本文主要为您介绍pythonmongodbsort,内容包括pythonsort()用法,Python里的sort语句,python列表中的sort方法是用什么排序方法。Python中的sort()方法用于数组排序,下面以实例形式对此加以详细说明:基本形式列表有自己的sort方法,其对列表进行原

资讯

sortpythonarray(pythonsort用法)

阅读(19)

本文主要为您介绍sortpythonarray,内容包括pythonsort()用法,numpy.array和python自带的list比排序,哪个快,Python初级sort以及数组和函数的用法。Python中的sort()方法用于数组排序,下面以实例形式对此加以详细说明:基本形式列表有自己的sort

资讯

pythonsort效率(pythonsort用法)

阅读(26)

本文主要为您介绍pythonsort效率,内容包括pythonsort()用法,python列表中的sort方法是用什么排序方法,Python里的sort语句。Python中的sort()方法用于数组排序,下面以实例形式对此加以详细说明:基本形式列表有自己的sort方法,其对列表进行原址排

资讯

python列表sort(pythonsort用法)

阅读(19)

本文主要为您介绍python列表sort,内容包括python列表中的sort方法是用什么排序方法,(小白求教)python中怎么用sort对某个列表排序,pythonsort()用法。Python中的sort()方法用于数组排序,下面以实例形式对此加以详细说明:基本形式列表有自己的sort

资讯

python数组降序(pythonsort用法)

阅读(18)

本文主要为您介绍python数组降序,内容包括怎样用python将数组里的数从高到低排序,python根据规则进行数组排序,怎样在python上实现冒泡排序整数数组结果升序输出。Python中的sort()方法用于数组排序,下面以实例形式对此加以详细说明:基本形式

资讯

python3sort(pythonsort用法)

阅读(22)

本文主要为您介绍python3sort,内容包括pythonsort()用法,Python3.x版本中关于列表sort()方法的一些疑问,Python里的sort语句。Python中的sort()方法用于数组排序,下面以实例形式对此加以详细说明:基本形式列表有自己的sort方法,其对列表进行原址

资讯

pythonsort(by=none)(pythonsort用法)

阅读(19)

本文主要为您介绍pythonsort(by=none),内容包括pythonsort()用法,python使用lambda进行排序,为什么输出None,Python问题如图,lists都能输出了,为什么排序后的结果为None求。Python中的sort()方法用于数组排序,下面以实例形式对此加以详细说明: