建立不可修改的 Python 清單複製
將 new_list 指派給 my_list 時,它不是實際的單獨清單建立。相反,它只是指向同一個列表的引用,導致 new_list 中的任何更改都會反映在 my_list 中。
有效複製清單
為了避免意外的清單修改,清單複製有多種方法:
new_list = old_list.copy()
new_list = old_list[:]
new_list = list(old_list)
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中文網其他相關文章!