list.reverse()不起作用

Rya*_*axe 8 python reverse list

老实说,我只是不明白为什么会返回None而不是反向列表:

>>> l = range(10)
>>> print l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print l.reverse()
None
Run Code Online (Sandbox Code Playgroud)

为什么会这样?根据文件,我没有做错任何事.

mdm*_*dml 15

reverse修改列表并返回None.如果你这样做

l.reverse()
print l
Run Code Online (Sandbox Code Playgroud)

您将看到您的列表已被修改.

  • 当然可以,但是不只返回列表而不是“None”的原因是什么?由于它只是一个参考而不是列表的副本,因此它不会太贵...... (2认同)

Joh*_*ooy 7

L.reverse()修改 L 到位。作为一般规则,Python 的内置方法要么改变要么返回一些东西,但不能两者兼而有之

反转列表的常用方法是使用

print L[::-1]
Run Code Online (Sandbox Code Playgroud)

reversed(L)返回一个listreverseiterator object很好的迭代,但如果你真的想要一个列表就不是那么好

[::-1]只是一个普通的切片- 这一步是-1让你得到一个从结尾开始到开头结束的副本


Roh*_*ain 5

list.reverse()将列表反转到位.它不会返回反转列表.为此,使用reversed()功能:

print reversed(l)
Run Code Online (Sandbox Code Playgroud)

或者只使用扩展切片表示法:

print l[::-1]
Run Code Online (Sandbox Code Playgroud)