📜  Python List.copy()方法(1)

📅  最后修改于: 2023-12-03 15:04:06.004000             🧑  作者: Mango

Python List.copy()方法

在 Python 中,copy() 是列表的一个内置方法,它可以用来返回一个新的列表,该列表包含当前列表的所有元素。该方法的语法如下:

new_list = old_list.copy()

或者使用以下方法:

new_list = list(old_list)

相同的方法也可以用于元组。

示例

以下示例展示了如何使用 copy() 方法:

old_list = [1, 2, 3]
new_list = old_list.copy()

print("Old list:", old_list)
print("New list:", new_list)

输出:

Old list: [1, 2, 3]
New list: [1, 2, 3]

这个示例说明了如何复制一个 Python 列表。

原理

copy() 方法实际上是调用列表的构造函数来创建一个副本,该构造函数在内部将列表的所有元素复制到新的列表中。

与切片操作的比较

您可能会想知道,为什么不能使用切片操作来复制列表。下面的代码示例演示了为什么这样做不是一个好主意:

old_list = [1, 2, 3]
new_list = old_list[:]

# add an element to new_list
new_list.append('a')

# Output: [1, 2, 3, 'a']
print("New list:", new_list)

# Output: [1, 2, 3]
print("Old list:", old_list)

输出:

New list: [1, 2, 3, 'a']
Old list: [1, 2, 3]

这是因为切片操作只创建当前列表的浅拷贝。如果当前列表中包含嵌套列表或对象,则仅复制引用,而不是实际对象本身。因此,对新列表的修改也会在原始列表中反映出来。

相比之下,使用 copy() 方法可以创建一个全新的、完全独立的列表。

结论

Python 中的 copy() 方法是一个简单而有用的方法,可以用于创建一个新的、与原始列表完全无关的列表。虽然使用切片操作可以实现类似的功能,但如果列表包含嵌套列表或对象,那么复制的仅是其引用,而不是实际的对象。