Python的排序功能

来源:互联网 发布:js的缺点 编辑:程序博客网 时间:2024/06/06 18:02

sort

sort()从大到小排序,覆盖原表。

>>> help(list.sort)Help on method_descriptor:sort(...)    L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*

不过盲目用sort会出现一个问题,如果我想要对list排序,但不想破坏原来的list:

a = [1,2,3,4,6,5,7,8,9]b = ab.sort()print(b)print(a)

运行结果为
这里写图片描述

由于我们认为的python的赋值语句实际是引用, 因此我们需要创建一个新的对象,用a指向新的对象。

b = a[:]

或者

b = copy.deepcopy[a]

不过也可以用sorted()

sorted()

sorted(iterable, key=None, reverse=False)    Return a new list containing all items from the iterable in ascending order.    A custom key function can be supplied to customise the sort order, and the    reverse flag can be set to request the result in descending order.

sorted()中的key很强大,对于任意的Iterable类型,可以使用多种方法在一个新的list里排序(如果是dictionary类型则返回key的表),相比之下,sort()只能对list排序。

a = [1,2,3,4,6,5,7,8,9]b = sorted(a)print(b)print(a)

这里写图片描述

key的位置是一个函数,代表按某种方式排序,接收一个参数并且返回一个用于比较的关键字,对复杂对象的比较通常是使用对象的切片作为关键字。

原创粉丝点击