pythonsortedlist(什么是python内置函数sorted)

1.什么是python内置函数sorted

Python对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数。

sort函数和sorted函数唯一的不同是,sort是在容器内排序,sorted生成一个新的排好序的容器。

对于一个简单的数组 L=[5,2,3,1,4].

sort: L.sort()

sorted(。)

sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

iterable:待排序的可迭代类型的容器;

cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;

key:用列表元素的某个已命名的属性或函数(只有一个参数并且返回一个用于排序的值)作为关键字,有默认值,迭代集合中的一项;

reverse:排序规则. reverse = True 或者 reverse = False,有默认值。

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

如果是一个多维的列表 L=[('b',2),('a',1),('c',3),('d',4)].

有三种选择对这个多维列表进行排序

利用cmp函数

sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))

L.sort(cmp=lambda x,y:cmp(x[1],y[1]))

利用key

sorted(L, key=lambda x:x[1]);

L.sort(key=lambda x:x[1]);

反序

以上几种排序均可加上参数reverse.

例如 sorted(reverse=True), L.sort(reverse=True). 或者改成False

OrderedDict是collections中的一个包,能够记录字典元素插入的顺序,常常和排序函数一起使用来生成一个排序的字典。

比如,比如一个无序的字典

d = {'banana':3,'apple':4,'pear':1,'orange':2}

通过排序来生成一个有序的字典,有以下几种方式

collections.OrderedDict(sorted(d.items(),key = lambda t:t[0]))

或者

collections.OrderedDict(sorted(d.items(),key = lambda t:t[1]))

或者

collections.OrderedDict(sorted(d.items(),key = lambda t:len(t[0])))

2.python3.0中sorted函数怎么用

【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组成的listPython代码 >>> 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)]。

pythonsortedlist

3.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']

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

4.python按某一内部列表排序

#!/usr/bin/env python2# coding=utf-_by_2nd_list(list0): list_of_tuple =itertools.izip(*list0) sorted_list =sorted(list_of_tuple, key=lambdax: x[1]) return[[x[i] forx insorted_list] fori inrange(len(list0))]deftest_sort_by_2nd_list(): list1 =['A', 'B', 'C'] list2 =[1.5, 1.2, 1.3] list3 =[1, 2, 3] list0 =[list1, list2, list3] assertsort_by_2nd_list(list0) ==[['B', 'C', 'A'], [1.2, 1.3, 1.5], [2, 3, 1]]。

5.python按某一内部列表排序

#!/usr/bin/env python2

# coding=utf-8

import itertools

def sort_by_2nd_list(list0):

list_of_tuple = itertools.izip(*list0)

sorted_list = sorted(list_of_tuple, key=lambda x: x[1])

return [[x[i] for x in sorted_list] for i in range(len(list0))]

def test_sort_by_2nd_list():

list1 = ['A', 'B', 'C']

list2 = [1.5, 1.2, 1.3]

list3 = [1, 2, 3]

list0 = [list1, list2, list3]

assert sort_by_2nd_list(list0) == [['B', 'C', 'A'],

[1.2, 1.3, 1.5],

[2, 3, 1]]

6.python中sorted函数的空间复杂度是多少

sorted(iterable,cmp,key,reverse) 参数:iterable可以是list或者iterator; cmp是带两个参数的比较函数; key 是带一个参数的函数; reverse为False或者True; 举例说明 (1)用cmp函数排序 >>> list1 = [('david', 90), ('mary',90), ('sara',80),('lily',95)] >>> sorted(list1,cmp = lambda x,y: cmp(x[0],y[0])) [('david', 90), ('lily', 95), ('mary', 90), ('sara', 80)] >>> sorted(list1,cmp = lambda x,y: cmp(x[1],y[1])) [('sara', 80), ('david', 90), ('mary', 90), ('lily', 95)] (2)用key函数排序 >>> list1 = [('david', 90), ('mary',90), ('sara',80),('lily',95)] >>> sorted(list1,key = lambda list1: list1[0]) [('david', 90), ('lily', 95), ('mary', 90), ('sara', 80)] >>> sorted(list1,key = lambda list1: list1[1]) [('sara', 80), ('david', 90), ('mary', 90), ('lily', 95)] (3)用reverse排序 >>> sorted(list1,reverse = True) [('sara', 80), ('mary', 90), ('lily', 95), ('david', 90)] (4)用operator.itemgetter函数排序>>> from operator import itemgetter>>> sorted(list1, key=itemgetter(1))[('sara', 80), ('david', 90), ('mary', 90), ('lily', 95)]>>> sorted(list1, key=itemgetter(0))[('david', 90), ('lily', 95), ('mary', 90), ('sara', 80)] 介绍operator.itemgetter函数 >>> import operator >>> a = [1,2,3] >>> b = operator.itemgetter(0) >>> b(a) 1 operator.itemgetter函数获取的不是值,而是定义了一个函数。

(5)多级排序>>> sorted(list1, key=itemgetter(0,1))[('david', 90), ('lily', 95), ('mary', 90), ('sara', 80)]空间复杂度是O(n)。

pythonsortedlist

转载请注明出处代码入门网 » pythonsortedlist(什么是python内置函数sorted)

资讯

pythonjson编码(python如何解析json代码分析)

阅读(22)

本文主要为您介绍pythonjson编码,内容包括python如何解析json代码分析,pythonjson怎么修改json数据,如何在python代码中引用json格式。先import json导入json模块,然后加载json编码如f是读取网页得到的json结构加载:json_r=json.loads(

资讯

pythonsublime设置(如何用sublime运行python)

阅读(22)

本文主要为您介绍pythonsublime设置,内容包括如何用sublime运行python,如何用sublime设置python的开发环境,如何使用sublime编辑器运行python程序。工具/原料SublimeTextPython方法/步骤打开sublimeText,在菜单栏找到Tools>编译系统>新编译

资讯

padavan安装python(anaconda与python什么关系)

阅读(23)

本文主要为您介绍padavan安装python,内容包括老毛子固件在编译的时候怎样加入python,anaconda与python什么关系,padavan华硕怎么安装adbyby。Theano:一个深度学习的开源工具包。Python:一门面抄向对象的、解释型袭的计算机编程(程序设计)语言,由

资讯

pythonlastindexof(python中return到底什么意思)

阅读(14)

本文主要为您介绍pythonlastindexof,内容包括python新手请教,用python取字符串中最后的一个特定字符之前的字,python中return到底什么意思,python中的return有什么用。return,就是函数返回传。每一个函数都必须有一个返回值的,如果函数中没有

资讯

xsdxmlpython(用XSD创建XML模式有哪些优点?)

阅读(20)

本文主要为您介绍xsdxmlpython,内容包括如何定义XSD并在XML中使用XSD,用XSD创建XML模式优点?,xml,xsd,xslt区别是什么,各自的作用是什么?。XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的:软件厂商是不会

资讯

pythonmap结构(求教Python编程中map)

阅读(18)

本文主要为您介绍pythonmap结构,内容包括python中map函数,python里怎么表示一个类似java里map的数据结构,python里怎么表示一个类似java里map的数据结构。_tabkeys = map(int,tabkeys[1:_len])相当于_tabkeys[0] = int(tabkeys[1]).

资讯

pythonlist组合(python怎么生成list的所有元素的组合)

阅读(24)

本文主要为您介绍pythonlist组合,内容包括python怎么生成list的所有元素的组合,python几个不同list进行合并,python怎么生成list的所有元素的组合。生成排列可以用product:from itertools import productl = [1, 2, 3]print list(

资讯

python上一级目录(python怎么引入上上级目录的文件)

阅读(20)

本文主要为您介绍python上一级目录,内容包括python怎么引入上上级目录的文件,python实现copy一级目录下的所有文件与文件夹到指定目录,cmd中运行python怎么切换目录?。python导入同级别模块很方便:import xxx要导入下级目录页挺方便,需要在下

资讯

python获取key(python字典怎么取key对应的值)

阅读(15)

本文主要为您介绍python获取key,内容包括PYTHON:在Dictionary中,如何随机提取key和value?,python怎么获的字典的key值,python字典怎么取key对应的值。对应值:value = dictname[key]。字典是Python语言中唯一的映射类型。映射类型对象里哈希

资讯

pythontwisted广播(局域网如何互连?)

阅读(1)

本文主要为您介绍pythontwisted广播,内容包括pythonPyTorch用matmul写矩阵相乘函数时,怎么让函数可以广播?,局域网如何互连?,学习python能干什么???。网络互连的目的:是将多个网络互相连接,以实现在更大范围内的信息交换资源共享和协同工作。

资讯

python精要参考pudn(python四种基本数据类型)

阅读(1)

本文主要为您介绍python精要参考pudn,内容包括python四种基本数据类型,要学习python需要学习哪些知识?,零基础如何开始学习Python?如何入门?。python是相当高级的语言,基本数据类型就很多,不过参考其他语言的,一定要四个的话:整形 int定义:age=1

资讯

python百分数加减(python如何进行多项式的加减乘除)

阅读(2)

本文主要为您介绍python百分数加减,内容包括python中,如何计算变量与百分数的结果?,python如何进行多项式的加减乘除,扩句(有要求)将下面的句子扩展成一句话,。如何进行多项式的加减乘除?这个题目太大!12个字,写出来很简单,答案却是初中教材上

资讯

wsgipython开发(如何创建部署WSGI类型的Python应用)

阅读(2)

本文主要为您介绍wsgipython开发,内容包括如何创建部署WSGI类型的Python应用,如何创建部署WSGI类型的Python应用,如何部署pythonweb程序。第一部分:安装必要工具。1.因为这是部署Python开发环境,所以安装pip可以简化一些软件的安装过程。(PIP

资讯

python集成测试框架(最受欢迎的Python开源框架有哪些)

阅读(1)

本文主要为您介绍python集成测试框架,内容包括最受欢迎的Python开源框架,企业级软件开发需要什么样的框架,Python企业应用到底如何?。Django: Python Web应用开发框架Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。D

资讯

python数据驱动测试(python中什么是测试数据和训练数据)

阅读(1)

本文主要为您介绍python数据驱动测试,内容包括python中什么是测试数据和训练数据,python学到什么程度就能满足测试需要,如何用python抓取js生成的数据:。当数据量特别大的时候,有几千几万条,为了验证模型的好坏,取出一部分用于训练,另一部分用

资讯

python函数返回值为list(返回值是一个list的函数,该怎么写)

阅读(1)

本文主要为您介绍python函数返回值为list,内容包括python设计一个名为listsum的函数,接收一个数字的列表,返回积累,python函数如何返回多个变量,c/c++调用python中返回值为list的函数。1.你先定义个实体类(当中的字段要跟table里一一对应,类

资讯

pythondatetime相加(python中datetime怎么用)

阅读(1)

本文主要为您介绍pythondatetime相加,内容包括python时间相加函数,python中datetime怎么用,python获取系统时间有问题(时区?)写了一段python代码。 日期相关的操作 from datetime import datetime from datetime import timedel