수정 불가능한 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)
예:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!