> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 정말로 불변의 중첩 목록을 만드는 방법은 무엇입니까?

Python에서 정말로 불변의 중첩 목록을 만드는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-20 01:19:03
원래의
1011명이 탐색했습니다.

How to Create Truly Immutable Nested Lists in Python?

Python에서 불변 중첩 목록 생성

Python에서 데이터 구조를 복사하는 것은 까다로울 수 있으며, 특히 중첩 목록을 처리할 때 더욱 그렇습니다. [:]를 사용하는 얕은 복사본은 중첩된 요소에 대한 참조를 유지하여 원하지 않는 수정을 유발합니다.

이 문제를 해결하려면 중첩 목록의 복사본을 생성할 때 다음 기술을 고려하십시오.

  • 얕은 복사본:

1차원 목록의 경우 [:] 연산자는 메모리의 동일한 요소를 참조하는 얕은 복사본을 만듭니다. 복사본을 수정해도 원본에는 영향이 없습니다.

a = [1, 2]
b = a[:]
b[0] = 3  # Modifies b, but a remains unchanged
로그인 후 복사
  • 슬라이싱을 사용한 심층 복사:

중첩 목록의 경우 슬라이싱만으로는 충분하지 않습니다. 딥 카피. 새 목록을 생성하는 동안 중첩된 요소는 여전히 원본에 대한 참조입니다.

a = [[1, 2], [3, 4]]
b = a[:]  # Shallow copy
b[0][0] = 5  # Modifies b and a
로그인 후 복사
  • Copy.deepcopy()를 사용한 Deep Copy:

copy.deepcopy() 함수는 진정한 딥 카피를 생성하여 중첩 목록의 모든 수준에 대해 새로운 객체를 재귀적으로 생성합니다. 복사본에 대한 변경 사항은 원본에 영향을 주지 않습니다.

import copy
b = copy.deepcopy(a)
b[0][0] = 6  # Modifies b, but a remains untouched
로그인 후 복사

이러한 기술을 사용하면 격리 기능을 제공하는 변경 불가능한 중첩 목록을 생성하여 원본 데이터 구조가 예기치 않게 수정되는 것을 방지할 수 있습니다.

위 내용은 Python에서 정말로 불변의 중첩 목록을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿