1. 程式人生 > >【python】列表複製

【python】列表複製

      我們經常需要根據已有列表來建立全新的列表,下面來介紹列表複製的工作原理。

<1>原理

       要複製列表,首先需要建立一個包含整個列表的切片,方法是同時省略起始和終止索引([:]),即讓python建立一個始於第一個元素,終止於最後一個元素的切片,便可複製整個切片。

例:將‘myFoods’複製給‘friendFoods’。

#Copy List1
myFoods=['rice','water','meat']
friendFoods=myFoods[:]

myFoods.append('ice-cream')
friendFoods.append('fruit')

print('myFoods:')
print(myFoods)
執行結果:
myFoods:
['rice', 'water', 'meat', 'ice-cream']
friendFoods:
['rice', 'water', 'meat', 'fruit']

注意:關鍵一步為
friendFoods=myFoods[:]

<2>注意

若將
friendFoods=myFoods[:]
改為
friendFoods=myFoods

則整個程式變為:

#Copy List2
myFoods=['rice','water','meat']
friendFoods=myFoods

myFoods.append('ice-cream')
friendFoods.append('fruit')

print('myFoods:')
print(myFoods)
則執行結果為:
myFoods:
['rice', 'water', 'meat', 'ice-cream', 'fruit']
friendFoods:
['rice', 'water', 'meat', 'ice-cream', 'fruit']

      可發現,對myFoods和friendFoods的操作同時增加了二者的列表元素,說明方法二是將myFoods的地址傳遞給了friendFoods(即關聯到了一起),所以改變列表一的值也會改變列表二。而方法一是將myFoods的副本傳遞給了friendFoods,二者在第一次複製完後,不再相互干擾,乾乾淨淨清清爽爽。