【python】列表複製
阿新 • • 發佈:2019-02-05
我們經常需要根據已有列表來建立全新的列表,下面來介紹列表複製的工作原理。
<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,二者在第一次複製完後,不再相互干擾,乾乾淨淨清清爽爽。