首页 > 后端开发 > Python教程 > 如何创建 Python 列表的真正独立副本?

如何创建 Python 列表的真正独立副本?

Patricia Arquette
发布: 2024-12-25 00:57:17
原创
356 人浏览过

How to Create Truly Independent Copies of Python Lists?

创建不可修改的 Python 列表克隆

将 new_list 分配给 my_list 时,它不是实际的单独列表创建。相反,它只是指向同一个列表的引用,导致 new_list 中的任何更改都会反映在 my_list 中。

有效复制列表

为了避免意外的列表修改,列表克隆有多种方法:

  • list.copy()方法:(Python 3.3):
new_list = old_list.copy()
登录后复制
  • 切片:
new_list = old_list[:]
登录后复制
  • 列表()构造函数:
new_list = list(old_list)
登录后复制
  • copy.copy() 函数:
import copy
new_list = copy.copy(old_list)
登录后复制
  • copy.deepcopy() 功能: (复制嵌套元素递归)
import copy
new_list = copy.deepcopy(old_list)
登录后复制

示例:

class Foo:
    def __init__(self, val):
        self.val = val

foo = Foo(1)

a = ['foo', foo]
b = a.copy()
c = a[:]
d = list(a)
e = copy.copy(a)
f = copy.deepcopy(a)

a.append('baz')
foo.val = 5

print(f'original: {a}\nlist.copy(): {b}\nslice: {c}\nlist(): {d}\ncopy: {e}\ndeepcopy: {f}')
登录后复制

输出:

original: ['foo', Foo(5), 'baz']
list.copy(): ['foo', Foo(5)]
slice: ['foo', Foo(5)]
list(): ['foo', Foo(5)]
copy: ['foo', Foo(5)]
deepcopy: ['foo', Foo(1)]
登录后复制

以上是如何创建 Python 列表的真正独立副本?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板