• 技术文章 >常见问题 >Python常见问题

    Python排列函数sort和sorted的区别

    silencementsilencement2019-10-10 11:03:29原创5667

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

    区别:sort()属于永久性排列,直接改变该list; 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指定的函数将作用于list中的每一个元素上,根据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']

    以上就是Python排列函数sort和sorted的区别的详细教程,更多学习内容,请点击Python学习网

    专题推荐:sort
    上一篇:怎么安装python? 下一篇:python3如何解决中文乱码

    相关文章推荐

    • python的sort()排序方法• Python sorted函数及用法• 细说python3中sort和sorted

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网