Python中调用list.reverse()赋值变量为何输出None?
为什么
revered_list输出None?底层发生了什么? 核心原因
list.reverse()是Python列表的原地修改方法——它的作用是直接改动原列表mylist的元素顺序,不会生成并返回新的列表对象。这类原地修改的方法(比如list.sort()、list.append())执行完后,默认返回None,因为它们的设计目标就是修改原对象,而非产出新对象。
底层实际逻辑
当你调用mylist.reverse()时,Python直接操作该列表在内存里的元素存储位置,把列表内部的元素顺序反转。整个过程不会额外分配新的内存空间来存储反转后的列表,自然就没有新的列表对象能返回,所以变量revered_list接收到的就是这个方法的返回值None。
如何得到反转后的新列表
如果想保留原列表,同时拿到反转后的新列表,可以用这两种方式:
- 切片操作:
reversed_list = mylist[::-1] reversed()函数:reversed_list = list(reversed(mylist))
内容的提问来源于stack exchange,提问作者Rajitha Amarasinghe
相关产品推荐
相关产品推荐

