将一个列表的数据复制到另一个列表中。

xiaoxiao2021-02-28  128

1、对于简单的列表,也就是列表中都是基本的元素,可以使用如下的方法:

a=[1,2] b=a[:] print(b) 结果:[1, 2]

2、但是如果列表中仍然包含列表,这种方法就不合适,原因就是,对于a[:]这种处理,只是将列 表元素的值生成一个新的列表,如果列表元素也是一个列表,如:a=[1,[2]],那么这种复制对于元素[2]的处理只是复制[2]的引用,而并未生成 [2]的一个新的列表复制。为了证明这一点,测试步骤如下:

a=[2,[3]] b=a[:] a[1].append(4) print(a) print(b) 结果:

[2, [3, 4]] [2, [3, 4]]

说明这种复制方法对于复杂的列表不适用。

2、复杂列表可以使用copy模块中的deepcopy函数。

修改函数如下;

import copy a=[2,[3]] b=copy.deepcopy(a) a[1].append(4) print(a) print(b) 结果:[2, [3, 4]] [2, [3]] 说明完全复制过来了,对a的操作,对b无任何影响

转载请注明原文地址: https://www.6miu.com/read-24715.html

最新回复(0)