知行编程网知行编程网  2022-09-27 20:00 知行编程网 隐藏边栏  8 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python排列函数sort和sorted的区别的相关知识,包括sort函数如何降序,以及sort()函数这些编程知识,希望对大家有参考作用。

Python中排序函数sort和sorted的区别

排序函数介绍:sort()和sorted()都属于Python list的排序方法

区别:sort()是永久排列,直接改变列表; sorted 是一个临时排列,它将生成一个新的序列。

#sorted()
>>> sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]

#sort()
>>> L = [5, 2, 3, 1, 4]
>>> L.sort()
>>> print L
[1, 2, 3, 4, 5]
#sort后会返回None
def paixu(list):
    return list.sort()

paixu(['a','f','g','b','a'])

#并没输出结果,返回None

#sorted后会返回列表
def paixu(list):
    return sorted(list)

paixu(['a','f','g','b','a'])

#输出结果
['a', 'a', 'b', 'f', 'g']

以下对常用的sorted进行介绍:

python 内置的sorted()函数可以对一个list进行排序:

>>> sorted([8,3,8,11,-2])
[-2, 3, 8, 8, 11]

既然是高阶函数,也可以接受一个key函数来实现自定义排序,比如按绝对值大小排序:

>>> sorted([8,3,8,11,-9],key=abs)
[3, 8, 8, -9, 11]

key 指定的函数会作用于列表中的每个元素,并根据 key 函数返回的结果进行排序。

来看看字符串排序的问题:

>>> sorted(['abc','Abc','Cba','bAc'])
['Abc', 'Cba', 'abc', 'bAc']

默认情况下,对于字符串, sorted 函数根据 ASCII 大小进行排序,由于 C<a,因此大写 C 将排在小写 a 之前。

如果我们想实现不区分大小写的排序,我们只需要改变key函数:

>>> sorted(['abc','Abc','Cba','bAc'],key=str.lower)
['abc', 'Abc', 'bAc', 'Cba']

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享