Python 为什么列表反向返回空值?

Python 为什么列表反向返回空值?,python,Python,我有如下示例列表: l = [1,2,3] print(l.reverse()) #give None instead [3, 2, 1] 怎么样?我怎样才能取消列表 我怎样才能取消列表 名单正在颠倒。但是list.reverse就地反转,不向调用者返回任何内容。您可以通过在列表上调用reverse后打印列表来验证这一点: >>> l = [1,2,3] >>> l.reverse() >>> print(l) >>>

我有如下示例列表:

l = [1,2,3]

print(l.reverse())
#give None instead [3, 2, 1]
怎么样?我怎样才能取消列表

我怎样才能取消列表

名单正在颠倒。但是
list.reverse
就地反转,不向调用者返回任何内容。您可以通过在列表上调用
reverse
后打印列表来验证这一点:

>>> l = [1,2,3]
>>> l.reverse()
>>> print(l)
>>> [3, 2, 1]
如果有疑问,请使用帮助:

>>> help(list.reverse)

Help on method_descriptor:
reverse(...)
    L.reverse() -- reverse *IN PLACE*
(Python 2.7文档)

来自文档:

列表。
反向

将列表中的元素反转到位

您可能已经注意到,仅修改列表的
insert
remove
sort
等方法没有打印返回值–它们返回默认的
None
。这是Python中所有可变数据结构的设计原则


Python不是函数式编程语言,它是必需的。调用
list.reverse()
方法时,您正在改变原始列表:

返回
None
的方法类似于C/C++/Java世界中的
void
函数/方法。由于
list.reverse()
改变了原始列表,因此它没有任何有意义的返回,因此返回值是
None

正如@YS-L在评论中指出的那样:


在空闲的Python 3.3中尝试过。工作得很好!list.reverse()原地反转列表中的元素。请尝试
l[::-1]
制作列表的反转副本。
l = [1,2,3]
l.reverse()
print l
# prints [3, 2, 1]
l = [1,2,3]
print l[::-1]
# prints [3, 2, 1]