Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.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的列表中。有什么不同吗_Python - Fatal编程技术网

何时使用";。复制();及=&引用;在python的列表中。有什么不同吗

何时使用";。复制();及=&引用;在python的列表中。有什么不同吗,python,Python,在列表中有一个名为“.copy()”的功能。但是,我有点搞不清楚是否在“=”上使用“.copy()”,反之亦然,因为两者的作用完全相同。以下是一个例子: friends = ["Tom", "holland", "Steves", "Jim", "Jimmy", "Boy"] friends2 = friends.copy() print(friends2) print(fri

在列表中有一个名为“.copy()”的功能。但是,我有点搞不清楚是否在“=”上使用“.copy()”,反之亦然,因为两者的作用完全相同。以下是一个例子:

friends = ["Tom", "holland", "Steves", "Jim", "Jimmy", "Boy"]
friends2 = friends.copy()
print(friends2)
print(friends)
得到的结果是:

['Tom', 'holland', 'Steves', 'Jim', 'Jimmy', 'Boy']
['Tom', 'holland', 'Steves', 'Jim', 'Jimmy', 'Boy']
如果使用“=”而不是“.copy()”,则得到相同的结果。例如:

friends = ["Tom", "holland", "Steves", "Jim", "Jimmy", "Boy"]
friends2 = friends
print(friends2)
print(friends)
你会得到同样的结果


那么,这两个关键字有什么区别吗。如果有,我应该在不同的情况下使用哪一个。

如果您尝试在
朋友
中添加或更改某些内容,您会注意到差异。使用
=
时,内存中只有一个列表。更改将反映在
好友
freinds2
中,因为它们是相同的列表。只需在两种情况下更新列表中的值并打印,您就会发现差异,两个列表中的值在
=
案例和
复制
案例中保持相同。仅在1个案例中会更改。只需在两个案例中更新一个列表中的值并打印,您就会发现差异,这两个列表中的值在
=
案例和
复制
案例中保持不变。仅在1个案例中会更改。这是真的,但为什么是这样?例如,如果您在好友2中更改,而在好友中未更改,那么为什么好友也会更改