如何在Python中克隆或複製列表?


Python中的列表是一種序列資料型別,用於儲存各種型別的資料。列表透過將每個資料元素放在方括號[]內建立,這些元素用逗號分隔。

在Python中,賦值運算子不會建立新的物件,而是為已存在的物件賦予另一個名稱。這可以使用id()函式驗證。

>>> L1 = [1,2,3,4]
>>> L2 = L1
>>> id(L1)
185117137928
>>> id(L2)
185117137928

在Python中有多種克隆/複製列表的方法。在本文中,我們將討論其中一些方法。

使用賦值運算子

克隆列表最簡單的方法是將舊列表物件賦值給新物件。這裡我們需要使用賦值運算子“=”。

語法

Old_list = new_list

示例

賦值運算子不會建立新的列表物件,而是為已存在的物件賦予另一個名稱。正如我們在上面的示例中看到的,兩個物件的ID相同,這已透過id()函式驗證。

如果我們對任何一個列表進行更改,另一個列表也會發生更改,因此如果我們想保持原始列表不變,可以使用以下方法。

l1 = [1,2,3,4]
l2 = l1
print("Original List:", l1)
print("After Cloning:", l2)

print("ID of Original list", id(l1))
print("ID of copied list", id(l2))

輸出

Original List: [1, 2, 3, 4]
After Cloning: [1, 2, 3, 4]
ID of Original list 140565795507408
ID of copied list 140565795507408

使用列表切片技術

Python中的切片技術用於訪問列表中的一系列專案。此技術也可用於克隆列表,在這種情況下,我們需要修改列表並保留原始列表的副本。

語法

list_obj[start:stop:step]

示例

從上面的例子可以證明,列表的切片技術也可以用於克隆列表。

l1 = [1,2,3,4]
l2= l1
print("Original List:", l1)
print("After Cloning:", l2)

print("ID of Original list", id(l1))
print("ID of copied list", id(l2))

l2.append(10)
print('Original list',l1)
print('Copied and updated list',l2)

輸出

Original List: [1, 2, 3, 4]
After Cloning: [1, 2, 3, 4]

ID of Original list 140565661890112
ID of copied list 140565795507408

Original list [1, 2, 3, 4]
Copied and updated list [1, 2, 3, 4, 10]

使用copy()方法

copy()是Python列表方法,用於獲取列表的淺複製。這意味著如果我們對新列表進行任何修改,這些更改不會反映到原始列表上。

語法

new_list = list.copy()

示例

list.copy()方法也成功克隆了一個列表。克隆的列表物件“l2”的ID為140565662101664。

l1 = [1,2,3,4]
l2 = l1.copy()
print("Original List:", l1)
print("After Cloning:", l2)

print("ID of Original list", id(l1))
print("ID of copied list", id(l2))

l2.append(10)
print('Original list',l1)
print('Copied and updated list',l2)

輸出

Original List: [1, 2, 3, 4]
After Cloning: [1, 2, 3, 4]
ID of Original list 140565661966976
ID of copied list 140565662101664
Original list [1, 2, 3, 4]
Copied and updated list [1, 2, 3, 4, 10]

使用list()方法

list()方法也被認為是克隆列表最簡單的方法。此函式建立一個新的列表物件。讓我們舉個例子,看看list()方法如何克隆Python列表。

示例

l1 = [1,2,3,4]
# clone a list
l2 = list(l1)
print("Original List:", l1)
print("After Cloning:", l2)

print("ID of Original list", id(l1))
print("ID of copied list", id(l2))

l2.append(10)
print('Original list',l1)
print('Copied and updated list',l2)

輸出

Original List: [1, 2, 3, 4]
After Cloning: [1, 2, 3, 4]
ID of Original list 140565661915808
ID of copied list 140565661713424
Original list [1, 2, 3, 4]
Copied and updated list [1, 2, 3, 4, 10]	

這些只是一些克隆Python列表的不同方法。我們還可以使用列表推導式、extend()和append()方法來克隆列表。

更新於:2023年8月24日

1K+ 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告