首頁 >後端開發 >Python教學 >如何建立 Python 清單的真正獨立副本?

如何建立 Python 清單的真正獨立副本?

Patricia Arquette
Patricia Arquette原創
2024-12-25 00:57:17363瀏覽

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)
import copy
new_list = copy.deepcopy(old_list)

copy.deepcopy() 功能: (複製巢狀元素遞歸)

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn