This question already has answers here:
Unable to reverse lists in Python, getting “Nonetype” as list

(3 个回答)


5年前关闭。




我使用了两种不同的方法来创建反向列表。
第一种方式:
>>> a=list(range(3))
>>> a.reverse()
>>> print(a)
[2,1,0]

第二种方式:
>>> a=list(range(3)).reverse()
>>> print(a)
None

为什么第二种方式不起作用?感谢您的帮助。

最佳答案

它失败是因为 reverse 就地更改了列表(即它不创建新列表),并且与大多数就地操作的函数一样,它返回 None

在你的第一个例子中

a=list(range(3))
a.reverse()
print a

当您捕获 a 作为 list(range(3)) 的返回值时,它工作正常,它返回 list 。然后,您可以原地反转该列表并打印出来。一切都好!

在你的第二个例子中
a=list(range(3)).reverse()
print(a)
a 等于 reverse() 的返回值(不是 list(range(3)) )。
在临时列表上调用 reverse 并返回 None ,这是分配给 a 的值。

关于python - Python中reverse()的用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30746251/

10-12 23:15