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