[1,2,3].reverse()为啥不行;[1,2,3][::-1]为啥就行
如题,>>> x =
>>> x.reverse()
>>> x
>>> y = .reverse()
>>> y
>>> print(y)
None
>>> print(.reverse())
None
这是为何?切片就可以,语法公式就不可以
>>> z=[::-1]
>>> z
求各位前辈指点{:10_268:} 本帖最后由 isdkz 于 2022-2-28 22:08 编辑
因为 reverse 是原地操作,它会把原来的列表给逆向排序,
它的返回值就是 None 的,你应该使用 reverse 之后打印原来的列表,
你不要把reverse的结果赋给原来的列表,因为它没有返回值,即返回值为 None 你试试:
print(.reverse())
结果会是:
None
这里的 reverse() 函数是不会有返回值的,所以返回 None (因为 Python 默认机制,没返回值也要返回 None) python爱好者. 发表于 2022-3-1 09:41
你试试:
结果会是:
明白了,感谢您的支持 isdkz 发表于 2022-2-28 22:06
因为 reverse 是原地操作,它会把原来的列表给逆向排序,
它的返回值就是 None 的,你应该使用 reverse...
谢谢您,请问可否同理
.sort()/.count()/.index()等都没有返回值? 李二蛋 发表于 2022-3-1 10:09
明白了,感谢您的支持
谢谢您,请问可否同理
.sort()/.count()/.index()等都没有返回值?{:10_330:} 李二蛋 发表于 2022-3-1 10:14
谢谢您,请问可否同理
.sort()/.count()/.index()等都没有返回值?
一个方法只会改变其需要改变的对象,而不会有返回值,所以同理 python爱好者. 发表于 2022-3-1 10:29
一个方法只会改变其需要改变的对象,而不会有返回值,所以同理
但也不是所有的都是这样,比如 find(),count(),index() (哎,怎么又说 count(),index(),是了,
好吧,刚才大意了。。。)
它们是返回某个值的,所以返回值不是 "None"!
页:
[1]