问题描述
请在python中这两个代码有什么区别?
Please what's the difference between this two codes in python:
white=[2,4,8,9]
black = white
和
white=[2,4,8,9]
black = white[:]
非常感谢您.
推荐答案
第一个将对列表 white
的引用复制到变量 black
The first copies a reference to the list white
to the variable black
因此,对黑色
的任何更改也会更改 white
,反之亦然
So any changes to black
will also alter white
and visa versa
将其视为 white
第二个将列表 white
的内容复制到变量 black
,也许这样写更好
The second copies the contents of the list white
to the variable black
and is perhaps better written like this
black = list(white)
在这种情况下,两个变量 black
和 white
之间没有连接,因为复制的是 white
的内容,而不是对 white
本身的引用.
In this case there is no connection between the two variables black
and white
as it is the contents of white
that are copied and not a reference to white
itself.
请额外考虑以下相关评论(感谢Jon Clements):您可以在此处阅读有关深层副本与浅层副本的更多信息
Extra to take into account the relevant comment below (thanks Jon Clements): you can read more about deep copies vs shallow copies here Understanding dict.copy() - shallow or deep?
这篇关于在python中复制列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!