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

Python sort()和reverse()函数不起作用,python,list,sorting,Python,List,Sorting,我试图根据我正在阅读的教程测试python中的列表是如何工作的。 当我试图使用list.sort()或list.reverse()时,解释器给了我None 请告诉我如何从这两种方法中获得结果: a = [66.25, 333, 333, 1, 1234.5] print(a.sort()) print(a.reverse()) .sort()和.reverse()更改列表并返回None请参阅: sort()和reverse()方法在对大型列表进行排序或反转时修改列表以节省空间。为了提醒您它们是

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

请告诉我如何从这两种方法中获得结果:

a = [66.25, 333, 333, 1, 1234.5]
print(a.sort())
print(a.reverse())
.sort()
.reverse()
更改列表并返回
None
请参阅:

sort()
reverse()
方法在对大型列表进行排序或反转时修改列表以节省空间。为了提醒您它们是通过副作用操作的,它们不会返回已排序或已反转的列表

改为这样做:

a.sort()
print(a)
a.reverse()
print(a)
或者使用和函数

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]

作为参考,您可以看到文档中明确说明:

在对大型列表进行排序或反转时,sort()和reverse()方法会就地修改列表以节省空间。为了提醒您它们是通过副作用操作的,它们不会返回已排序或已反转的列表


不要害怕阅读手册

此方法在适当的位置运行

这段代码有效(Python3.x)


简单的升序排序非常简单,请调用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]

我们应该让这成为这个问题所有重复问题的标准答案我需要Python2.x的答案,所以这对我来说很有用:)
>>> sorted([66.25, 333, 333, 1, 1234.5], reverse=True)
[1234.5, 333, 333, 66.25, 1]