Python中列表复制是一种常见的操作,有以下几种方法:
1. 赋值方法
list1 = [1, 2, 3, 4] list2 = list1 list2[2] = 5 print(list1) # [1, 2, 5, 4]
赋值方法是最简单的复制方法,只需要将要复制的列表赋值给另一个变量即可,但是由于其实list2只是list1的一个引用,当list2改变时,list1也会改变。
2. 切片方法
list1 = [1, 2, 3, 4] list2 = list1[:] list2[2] = 5 print(list1) # [1, 2, 3, 4]
切片方法是使用切片操作符[:]对列表进行切片,这样就可以得到一个新的列表,而且这个新的列表不会和原来的列表有任何关联,所以改变新的列表不会影响原来的列表。
3. copy()方法
list1 = [1, 2, 3, 4] list2 = list1.copy() list2[2] = 5 print(list1) # [1, 2, 3, 4]
copy()方法是使用list的copy()方法来复制列表,这样也可以得到一个新的列表,而且新的列表也不会和原来的列表有任何关联,所以改变新的列表不会影响原来的列表。
4. deepcopy()方法
list1 = [[1, 2], [3, 4]] list2 = copy.deepcopy(list1) list2[0][0] = 5 print(list1) # [[1, 2], [3, 4]]
deepcopy()方法是使用copy模块的deepcopy()方法来复制列表,这种方法可以复制嵌套列表,而且新的列表也不会和原来的列表有任何关联,所以改变新的列表不会影响原来的列表。
来说,Python中列表复制有以下几种方法:赋值、切片、copy()、deepcopy(),它们各有不同的用法,可以根据实际情况来选择最合适的复制方法。