python - 如何复制 Python 对象的值而不是变量的引用地址?
问题描述
所以,我有一个这样的 Python 列表:
list_ = [[Object, 2, ["r","g","b"]],
[Object, 5, ["r","g","b"]],
...
[Object, 3, ["r","g","b"]]]
我需要将此列表复制到一个新列表,但是当我使用 copy.deepcopy() 时,它会使用列表及其引用。
new_list = copy.deepcopy(list_)
当我更改 new_list 中的值时,它会影响列表中的值_我想复制列表_new_list 将具有独立变量,因此它必须复制值,而不是引用变量的地址。我怎样才能做到这一点?
解决方案
只需使用列表理解:
new_list = [x[:] for x in list_]
但老实说,copy.deepcopy
无论列表中的维度如何,都可以正常工作,您一定在其他地方犯了错误。无论如何,与列表切片相比,它可能非常慢。
推荐阅读
- angular - 渲染宿主元素时调用指令
- r - R vegan 包错误说数据不能包含 NA,但数据帧不包含 NA
- python - Python中的阶乘多线程
- c# - 按具有分页的公共属性对对象的动态列表进行排序
- arrays - 如果Google表格中的值等于0,如何计算损失
- python - 如何创建一个用 Python 流式传输在线广播的不和谐机器人
- python - Python3.7 在 linux 上的模块加载期间未显示
- javascript - 关于 CDN。这些方法在哪里起作用?客户?断绝?
- pandas - 如何使用 Pandas 转换日期时间格式
- c - 为什么我在运行此代码时收到无效指针错误