copy()方法返回列表的浅表副本。
列表可以被复制使用=运算符。例如:
old_list = [1, 2, 3] new_list = old_list
以这种方式复制列表的问题是,如果您修改new_list,old_list则也会被修改。
old_list = [1, 2, 3] new_list = old_list # 添加一个元素到列表 new_list.append('a') print('新的列表:', new_list ) print('旧的列表:', old_list )
运行该程序时,输出为:
新的列表: [1, 2, 3, 'a'] 旧的列表: [1, 2, 3, 'a']
但是,如果在修改新列表时需要原始列表保持不变,则可以使用copy()方法。这称为浅拷贝。
copy()方法的语法为:
new_list = list.copy()
copy()方法没有任何参数。
copy()函数返回一个列表。它不会修改原始列表。
# 混合列表 list = ['猫', 0, 6.7] # 复制一个列表 new_list = list.copy() # 将元素添加到新列表 new_list.append('狗') # 打印新的和旧的列表 print('旧列表: ', list) print('新列表: ', new_list)
运行该程序时,输出为:
旧列表: ['猫', 0, 6.7] 新列表: ['猫', 0, 6.7, '狗']
您可以看到,即使修改了新列表,旧列表也保持不变。
您还可以使用切片实现以下相同的结果:
# 混合列表 list = ['cat', 0, 6.7] # 复制一个列表使用切片 new_list = list[:] # 将元素添加到新列表 new_list.append('dog') # 打印新的和旧的列表 print('旧列表: ', list) print('新列表: ', new_list)
运行后,输出结果:
旧列表: ['cat', 0, 6.7] 新列表: ['cat', 0, 6.7, 'dog']