Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么list.reverse()函数除了反转指定的列表外,还要反转未指定的列表?_Python - Fatal编程技术网

Python 为什么list.reverse()函数除了反转指定的列表外,还要反转未指定的列表?

Python 为什么list.reverse()函数除了反转指定的列表外,还要反转未指定的列表?,python,Python,我正在上一门基础计算机科学课程,在编写一些基本的python代码时遇到了一个奇怪的情况。(添加了用于调试的打印功能) 这个函数应该检查输入的单词是否是回文。但是,当我对单词\u list\u reversed变量使用list.reverse()函数时,它也会反转单词\u list变量 输入一个单词:hello [h',e',l',l',o'] [o',l',l',e',h'] [o',l',l',e',h'] 真的 正如您所看到的,在世界列表变量被反转之前,单词列表变量是它应该的样子。我不是在寻

我正在上一门基础计算机科学课程,在编写一些基本的python代码时遇到了一个奇怪的情况。(添加了用于调试的打印功能)

这个函数应该检查输入的单词是否是回文。但是,当我对单词\u list\u reversed变量使用list.reverse()函数时,它也会反转单词\u list变量

输入一个单词:hello

[h',e',l',l',o']

[o',l',l',e',h']

[o',l',l',e',h']

真的


正如您所看到的,在世界列表变量被反转之前,单词列表变量是它应该的样子。我不是在寻找寻找回文的替代解决方案,只是回答为什么会发生这种情况。

在Python中,与许多其他OO语言一样,列表是通过引用分配的。因此,当您这样做时:

word\u list\u reversed=word\u list

您只需将
word\u列表\u反转
指向与
word\u列表
相同的内存地址即可。这就是为什么当你反转一个列表时“两个列表”都会改变的原因——因为它们是相同的

要使其在您的示例中起作用,您可以执行以下操作:

from copy import copy
word_list_reversed = copy(word_list)
这将在一个全新的列表中复制
单词列表的元素。

执行时

word_list_reversed = word_list
你把他们列在同一张名单上

word_list_reversed = word_list