我正在try 创建一个列表的副本,可以在不更改原始列表的情况下进行更改.下面是我try 使用切片的代码,但它不起作用:

l1=[[i,i] for i in range(4)]
l2=l1[:]
l2[2][1]=999
print('l1; ',l1)
print('l2: ',l2)

l1:  [[0, 0], [1, 1], [2, 999], [3, 3]]
l2:  [[0, 0], [1, 1], [2, 999], [3, 3]]

l2打印正确.我可以知道我能做些什么使l1保持它在定义中的状态吗?谢谢

推荐答案

使用copy.deepcopy(),因为列表包含一个对象

import copy
l1 = [[i,i] for i in range(4)]
l2 = copy.deepcopy(l1)
l2[2][1] = 999

print('l1; ',l1)
print('l2: ',l2)

# l1;  [[0, 0], [1, 1], [2, 2], [3, 3]]
# l2:  [[0, 0], [1, 1], [2, 999], [3, 3]]

Python相关问答推荐

在编写要Excel的数据透视框架时修复标题行

在Python中为变量的缺失值创建虚拟值

Deliveryter Notebook -无法在for循环中更新matplotlib情节(保留之前的情节),也无法使用动画子功能对情节进行动画

在Python中处理大量CSV文件中的数据

Pandas 有条件轮班操作

Pandas 都是(),但有一个门槛

如何从.cgi网站刮一张表到rame?

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

如何获取numpy数组的特定索引值?

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

Python Pandas获取层次路径直到顶层管理

如何在FastAPI中为我上传的json文件提供索引ID?

Tkinter菜单自发添加额外项目

未调用自定义JSON编码器

在不同的帧B中判断帧A中的子字符串,每个帧的大小不同

在方法中设置属性值时,如何处理语句不可达[Unreacable]";的问题?

Pandas—堆栈多索引头,但不包括第一列

如何合并具有相同元素的 torch 矩阵的行?

在我融化极点数据帧之后,我如何在不添加索引的情况下将其旋转回其原始形式?

在matplotlib中重叠极 map 以创建径向龙卷风图