Python 复制列表

Python 复制列表

在Python中,变量只是对内存中的对象的一个标签或引用。因此,赋值”lst1 = lst”指的是同一个列表对象。看下面的例子:

lst = [10, 20]
print ("lst:", lst, "id(lst):",id(lst))
lst1 = lst
print ("lst1:", lst1, "id(lst1):",id(lst1))

这将产生以下 输出

lst: [10, 20] id(lst): 1677677188288
lst1: [10, 20] id(lst1): 1677677188288

因此,如果我们更新”lst”,它会自动反映在”lst1″上。将lst[0]更改为100

lst[0]=100
print ("lst:", lst, "id(lst):",id(lst))
print ("lst1:", lst1, "id(lst1):",id(lst1))

它将生成以下 输出

lst: [100, 20] id(lst): 1677677188288
lst1: [100, 20] id(lst1): 1677677188288

因此,我们可以说”lst1″不是”lst”的物理副本。

使用列表类的copy()方法

Python的列表类有一个copy()方法,用于创建一个列表对象的新的物理副本。

语法

lst1 = lst.copy()

新的列表对象将具有不同的id()值。以下示例演示了这一点―

lst = [10, 20]
lst1 = lst.copy()
print ("lst:", lst, "id(lst):",id(lst))
print ("lst1:", lst1, "id(lst1):",id(lst1))

它会产生以下的 输出

lst: [10, 20] id(lst): 1677678705472
lst1: [10, 20] id(lst1): 1677678706304

即使两个列表具有相同的数据,它们具有不同的id()值,因此它们是两个不同的对象,”lst1″是”lst”的副本。 如果我们尝试修改”lst”,它不会反映在”lst1″中。看下面的示例−

lst[0]=100
print ("lst:", lst, "id(lst):",id(lst))
print ("lst1:", lst1, "id(lst1):",id(lst1))

它将产生以下 输出

lst: [100, 20] id(lst): 1677678705472
lst1: [10, 20] id(lst1): 1677678706304

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程