python中复制列表而不改变原列表的几种方法

2025-10-03 14:22:08

1、如图,通过将列表cities1的值赋值给新列表cities2,得到两个完全一样的列表,看起来并没有什么问题。代码示例如下:

cities1 = ["Guangzhou","Beijing","Shanghai","Nanjing"]

cities2 = cities1

print(cities1)

print(cities2)

python中复制列表而不改变原列表的几种方法

2、接着我们对产生的新列表cities2进行添加元素的操作,再打印新旧列表时,发现新旧列表都发生了相同的改变。代码示例如下:

cities2.append("Kunming")

print(cities1)

print(cities2)

1python如何添加和修改列表元素?

python中复制列表而不改变原列表的几种方法

3、然后我们再对旧列表cities1进行插入新元素的操作,然而再次打印新旧列表时会发现,新旧列表仍然发生了相同的改变。代码示例如下:

cities1.insert(1,"Xiamen")

print(cities1)

print(cities2)

1python如何添加和修改列表元素?

python中复制列表而不改变原列表的几种方法

4、综上所述可以得知,通过直接赋值方式得到的新列表会跟原列表一样,同时对新列表或者旧列表的任何操作都会同步到旧列表或者新列表。

接下来介绍几种方法,创建新列表但使其不与旧列表同步。

1、使用切片方法复制,比直接赋值多了[:]。代码示例如下:

cities1 = ["Guangzhou","Beijing","Shanghai","Nanjing"]

cities2 = cities1[:]

print(cities1)

print(cities2)

python中复制列表而不改变原列表的几种方法

2、使用切片方法复制后,如果对新列表进行添加元素的操作,再打印新旧列表时发现,新列表的操作并没有影响原列表。完整代码示例如下:

cities1 = ["Guangzhou","Beijing","Shanghai","Nanjing"]

cities2 = cities1[:]

cities2.append("Kunming")

print(cities1)

print(cities2)

python中复制列表而不改变原列表的几种方法

3、使用切片方法复制后,如果对旧列表进行插入元素的操作,再打印新旧列表时发现,旧列表的操作并没有影响新列表。完整代码示例如下:

cities1 = ["Guangzhou","Beijing","Shanghai","Nanjing"]

cities2 = cities1[:]

cities1.insert(1,"Xiamen")

print(cities1)

print(cities2)

python中复制列表而不改变原列表的几种方法

1、也可使用list.copy()的方法复制新列表,这种方式产生的新列表跟原列表也是完全分离的。代码示例如下:

cities1 = ["Guangzhou","Beijing","Shanghai","Nanjing"]

cities2 = cities1.copy()

cities1.insert(1,"Xiamen")

print(cities1)

print(cities2)

python中复制列表而不改变原列表的几种方法

1、还可使用for循环的方法复制新列表,这种方式产生的新列表跟原列表同样是完全分离的。代码示例如下:

cities1 = ["Guangzhou","Beijing","Shanghai","Nanjing"]

cities2 = [i for i in cities1]

cities2.append("Kunming")

print(cities1)

print(cities2)

python中复制列表而不改变原列表的几种方法

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢