copy()方法返回列表的淺表副本。
列表可以被復(fù)制使用=運(yùn)算符。例如:
old_list = [1, 2, 3] new_list = old_list
以這種方式復(fù)制列表的問題是,如果您修改new_list,old_list則也會被修改。
old_list = [1, 2, 3]
new_list = old_list
# 添加一個元素到列表
new_list.append('a')
print('新的列表:', new_list )
print('舊的列表:', old_list )運(yùn)行該程序時,輸出為:
新的列表: [1, 2, 3, 'a'] 舊的列表: [1, 2, 3, 'a']
但是,如果在修改新列表時需要原始列表保持不變,則可以使用copy()方法。這稱為淺拷貝。
copy()方法的語法為:
new_list = list.copy()
copy()方法沒有任何參數(shù)。
copy()函數(shù)返回一個列表。它不會修改原始列表。
# 混合列表
list = ['貓', 0, 6.7]
# 復(fù)制一個列表
new_list = list.copy()
# 將元素添加到新列表
new_list.append('狗')
# 打印新的和舊的列表
print('舊列表: ', list)
print('新列表: ', new_list)運(yùn)行該程序時,輸出為:
舊列表: ['貓', 0, 6.7] 新列表: ['貓', 0, 6.7, '狗']
您可以看到,即使修改了新列表,舊列表也保持不變。
您還可以使用切片實(shí)現(xiàn)以下相同的結(jié)果:
# 混合列表
list = ['cat', 0, 6.7]
# 復(fù)制一個列表使用切片
new_list = list[:]
# 將元素添加到新列表
new_list.append('dog')
# 打印新的和舊的列表
print('舊列表: ', list)
print('新列表: ', new_list)運(yùn)行后,輸出結(jié)果:
舊列表: ['cat', 0, 6.7] 新列表: ['cat', 0, 6.7, 'dog']