为什么列出反向返回Null?

时间:2014-06-02 06:16:14

标签: python

我有这样的示例列表:

l = [1,2,3]

print(l.reverse())
#give None instead [3, 2, 1]
那是怎么回事?我该如何反转清单?

3 个答案:

答案 0 :(得分:8)

  

如何反转清单?

列表反转。但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文档)

答案 1 :(得分:4)

来自docs:

  

list. reverse()

     

在适当的位置反转列表的元素。

     

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

答案 2 :(得分:2)

Python不是一种功能性编程语言 - 它是必不可少的。当您拨打list.reverse()方法时,您改变原始列表

l = [1,2,3]
l.reverse()
print l
# prints [3, 2, 1]

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

@ YS-L在他的评论中指出you can use Python's list slicing notation to create a reversed copy of the list

l = [1,2,3]
print l[::-1]
# prints [3, 2, 1]