List2
=
[
'openstack'
,
'云计算'
,
'python'
,
"中国"
,
"中东"
,
'linux'
,
123
,
"ww33##"
]
list3
=
List2.copy()
print
(List2,list3)
结果:
[
'openstack'
,
'云计算'
,
'python'
,
'中国'
,
'中东'
,
'linux'
,
123
,
'ww33##'
]
[
'openstack'
,
'云计算'
,
'python'
,
'中国'
,
'中东'
,
'linux'
,
123
,
'ww33##'
]
注意事项:
List2
=
[
'openstack'
,
'云计算'
,
'python'
,[
"中国"
,
"中东"
],
'linux'
,
123
,
"ww33##"
]
list3
=
List2.copy()
print
(List2)
print
(list3)
List2[
2
]
=
"MYSQl DBA"
List2[
3
][
1
]
=
"北京"
print
(List2)
print
(list3)
执行结果:
[
'openstack'
,
'云计算'
,
'python'
, [
'中国'
,
'中东'
],
'linux'
,
123
,
'ww33##'
]
[
'openstack'
,
'云计算'
,
'python'
, [
'中国'
,
'中东'
],
'linux'
,
123
,
'ww33##'
]
[
'openstack'
,
'云计算'
,
'MYSQl DBA'
, [
'中国'
,
'北京'
],
'linux'
,
123
,
'ww33##'
]
[
'openstack'
,
'云计算'
,
'python'
, [
'中国'
,
'北京'
],
'linux'
,
123
,
'ww33##'
]
我们将列表List2中的List2[
2
]的python和List2[
3
][
1
]的中东更改为List2[
2
]
=
"MYSQl DBA"
和List2[
3
][
1
]
=
"北京
输出后发现复制的那一部分List2[
3
][
1
]复制后是一样的,而List2[
2
]的值会不一样。主要是内存的地址原因。
同时对这种情况想要复制相同的是不行的
List2
=
[
'openstack'
,
'云计算'
,
'python'
,[
"中国"
,
"中东"
],
'linux'
,
123
,
"ww33##"
]
list3
=
List2
print
(List2)
print
(list3)
List2[
2
]
=
"MYSQl DBA"
List2[
3
][
1
]
=
"北京"
print
(List2)
print
(list3)
这里给list3赋值为List2这时会发现更改List2时,会直接更改list3的值
[
'openstack'
,
'云计算'
,
'python'
, [
'中国'
,
'中东'
],
'linux'
,
123
,
'ww33##'
]
[
'openstack'
,
'云计算'
,
'python'
, [
'中国'
,
'中东'
],
'linux'
,
123
,
'ww33##'
]
[
'openstack'
,
'云计算'
,
'MYSQl DBA'
, [
'中国'
,
'北京'
],
'linux'
,
123
,
'ww33##'
]
[
'openstack'
,
'云计算'
,
'MYSQl DBA'
, [
'中国'
,
'北京'
],
'linux'
,
123
,
'ww33##'
]
要想复制完全一样的,我们可以导入copy模块
import
copy
List2
=
[
'openstack'
,
'云计算'
,
'python'
,[
"中国"
,
"中东"
],
'linux'
,
123
,
"ww33##"
]
list3
=
copy.deepcopy(List2)
print
(List2)
print
(list3)
List2[
2
]
=
"MYSQl DBA"
List2[
3
][
1
]
=
"北京"
print
(List2)
print
(list3)
执行的结果:
[
'openstack'
,
'云计算'
,
'python'
, [
'中国'
,
'中东'
],
'linux'
,
123
,
'ww33##'
]
[
'openstack'
,
'云计算'
,
'python'
, [
'中国'
,
'中东'
],
'linux'
,
123
,
'ww33##'
]
[
'openstack'
,
'云计算'
,
'MYSQl DBA'
, [
'中国'
,
'北京'
],
'linux'
,
123
,
'ww33##'
]
[
'openstack'
,
'云计算'
,
'python'
, [
'中国'
,
'中东'
],
'linux'
,
123
,
'ww33##'
]
这时发现,List2元素的值改变不会影响list3的值,下面的这种copy,我们称为deep.copy,而列表的
copy()方法是一种浅copy