wns9778.com_威尼斯wns.9778官网

热门关键词: wns9778.com,威尼斯wns.9778官网
wns9778.com > 计算机教程 > wns9778.comsort、sorted高级排序-Python3.7 And 算法<七

原标题:wns9778.comsort、sorted高级排序-Python3.7 And 算法<七

浏览次数:125 时间:2019-05-10

1、sort**(**, key=None,reverse=False*) **

[Python]对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数。
sort函数和sorted函数唯一的不同是,sort是在容器内排序,sorted生成一个新的排好序的容器。

sort()接受两个参数,这两个参数只能通过关键字(关键字参数)传递。

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

  • 参数key:带一个参数的函数(排序时,会依次传入列表的每一项,作为该函数的参数)。该函数用于在比较排序之前进行的操作,e.g:每个字符串比较之前,需要统一小写。默认值None,说明每次比较排序之前不对比较项进行任何操作。

sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
iterable:待排序的可迭代类型的容器;
cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
key:用列表元素的某个已命名的属性或函数(只有一个参数并且返回一个用于排序的值)作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。

>>> test=["A","a","E","W","o"]
>>> test.sort()
>>> test
['A', 'E', 'W', 'a', 'o']
>>>
>>> test.sort(key=lambda x:x.lower())
>>> test
['A', 'a', 'E', 'o', 'W']
>>>

如果是一个多维的列表 L=[(‘b’,2),(‘a’,1),(‘c’,3),(‘d’,4)].
有三种选择对这个多维列表进行排序
利用cmp函数

  key还可以是比较函数functools.cmp_to_key(func),该函数主要用 Python 3 之前Python版本,因为 Python 3 中不支持比较函数。

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

>>> from functools import cmp_to_key
>>> test=[[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]
>>> myKey=cmp_to_key(lambda x,y:y[0]-x[0] if x[0]!=y[0] else x[1]-y[1]) #x 代表后面的数 y代表前面的数
>>> test.sort(key=myKey)
>>> test
[[7, 0], [7, 1], [6, 1], [5, 0], [5, 2], [4, 4]]

利用key

  • 参数reverse:在比较排序之后,是否要进行反向排序。传入True或False或能转换为True或False的值

    test=[2,3,4,5,6,3,4,1] test.sort() test=[2,3,4,5,6,3,4,1] test.sort(reverse=True) test [6, 5, 4, 4, 3, 3, 2, 1]

    test=[2,3,4,5,6,3,4,1] test.sort(reverse=0) test [1, 2, 3, 3, 4, 4, 5, 6]

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

 2、sorted``(iterable, *, key=None, reverse=False)
**

反序

本文由wns9778.com发布于计算机教程,转载请注明出处:wns9778.comsort、sorted高级排序-Python3.7 And 算法<七

关键词: wns9778.com

上一篇:原生js实现简单的焦点图效果

下一篇:没有了