Python-sort()和reverse()函数不起作用

发布于 2021-02-02 23:15:59

我试图根据我正在阅读的教程测试python中的列表如何工作。当我尝试使用list.sort()or时list.reverse(),口译员给了我None

请让我知道如何从这两种方法获得结果:

a = [66.25, 333, 333, 1, 1234.5]
print(a.sort())
print(a.reverse())
关注者
0
被浏览
147
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    简单的升序排序非常简单,请调用sorted()函数。它返回一个新的排序列表:

    >>> sorted([66.25, 333, 333, 1, 1234.5])
    [1, 66.25, 333, 333, 1234.5]
    

    sorted()接受带有布尔值的反向参数。

    >>> sorted([66.25, 333, 333, 1, 1234.5], reverse=True)
    [1234.5, 333, 333, 66.25, 1]
    


  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    .sort()和.reverse()更改列表中的位置,并返回None参见可变序列文件:

    sort()reverse()排序或反向的大名单时,方法的空间经济性修改到位名单。为了提醒你,它们是副作用,它们不会返回已排序或反向的列表。

    而是这样做:

    a.sort()
    print(a)
    a.reverse()
    print(a)
    

    或使用sorted()和reversed()功能。

    print(sorted(a))               # just sorted
    print(list(reversed(a)))       # just reversed
    print(a[::-1])                 # reversing by using a negative slice step
    print(sorted(a, reverse=True)) # sorted *and* reversed
    

    这些方法返回一个新列表,并保持原始输入列表不变。

    演示,原位排序和反向:

    >>> a = [66.25, 333, 333, 1, 1234.5]
    >>> a.sort()
    >>> print(a)
    [1, 66.25, 333, 333, 1234.5]
    >>> a.reverse()
    >>> print(a)
    [1234.5, 333, 333, 66.25, 1]
    

    并创建新的排序和反向列表:

    >>> a = [66.25, 333, 333, 1, 1234.5]
    >>> print(sorted(a))
    [1, 66.25, 333, 333, 1234.5]
    >>> print(list(reversed(a)))
    [1234.5, 1, 333, 333, 66.25]
    >>> print(a[::-1])
    [1234.5, 1, 333, 333, 66.25]
    >>> print(sorted(a, reverse=True))
    [1234.5, 333, 333, 66.25, 1]
    >>> a  # input list is untouched
    [66.25, 333, 333, 1, 1234.5]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看