Python의 컬렉션 모듈에는 "Namedtuple"이라는 기능이 있습니다. "Namedtuple"은 코드를 더욱 표현적으로 만들기 위해 명명된 요소가 있는 튜플입니다. Python의 사전과 마찬가지로 "Namedtuple"을 사용하면 인덱스 대신 튜플의 멤버를 사용하여 요소에 액세스할 수 있습니다.
Python의 컬렉션 모듈에는 "Namedtuple"이라는 기능이 있습니다. "Namedtuple"은 코드를 더욱 표현적으로 만들기 위해 명명된 요소가 있는 튜플입니다. Python의 사전과 마찬가지로 "Namedtuple"을 사용하면 인덱스 대신 튜플의 멤버를 사용하여 요소에 액세스할 수 있습니다.
네임드 튜플을 만들려면 컬렉션 모듈의 "namedtuple" 함수를 사용해야 합니다.
from collections import namedtuple # Define a employee tuple that has fields id, name and location. Employee = namedtuple ('Employee', 'id name location') # Create instances of Employee employee1 = Employee (id=10, name='John Doe', location='Atlanta') employee2 = Employee (id=11, name='Mick', location='Dallas')
"Namedtuple"은 요소 액세스를 위한 이중 메커니즘을 제공합니다. 첫째, 속성 이름을 통해 요소에 액세스할 수 있으며, 두 번째 메커니즘은 전통적인 숫자 인덱싱을 사용합니다.
print(f"{employee1.name} - {employee1.location}") # John Doe - Atlanta print(f"{employee2.name} - {employee2.location}") # Mick – Dallas
숫자 인덱스를 사용하여 요소에 액세스할 수도 있습니다.
print(f"{employee1[1]} - {employee1[2]}") # John Doe - Atlanta print(f"{employee2[1]} - {employee2[2]}") # Mick – Dallas
불변성은 일반 튜플에서 상속된 "Namedtuples"의 기본 속성입니다. 즉, 생성 중에 필드 값이 설정되면 수정할 수 없습니다.
try: employee1.name = 'David' except AttributeError as e: print(f"AttributeError: {e}") # AttributeError: can't set attribute
"Namedtuple"은 데이터를 구조화하는 깔끔하고 읽기 쉬운 방법을 제공할 뿐만 아니라 "Namedtuple"의 기능을 향상시키는 몇 가지 유용한 방법도 제공합니다.
a) _asdict(): _asdict() 메서드는 명명된 튜플을 사전 형식으로 반환하여 "Namedtuples"를 다른 데이터 구조와 호환되는 형식으로 변환하는 편리한 방법을 제공합니다.
employee1._asdict() # {'id': 10, 'name': 'John Doe', 'location': 'Atlanta'}
b) _replace(): _replace() 메서드는 지정된 필드를 새 값으로 대체하여 "Namedtuple"의 새 인스턴스를 만듭니다. 이 접근 방식은 수정을 허용하면서 불변성을 유지하는 데 중요합니다.
employee1_modified = employee1._replace(location='DFW') employee1_modified # Employee(id=10, name='John Doe', location='DFW')
c) _make(): _make(iterable) 메서드는 반복 가능한 객체에서 "namedtuple"의 새 인스턴스를 생성합니다. 예를 들어, _make() 메서드를 사용하여 목록에서 Namedtuple을 만들 수 있습니다.
employee_list = [21, 'Bob','Gallup'] Employee._make(employee_list) # Employee(id=21, name='Bob', location='Gallup')
압축 풀기 과정을 통해 Python의 "Namedtuples"를 사용하면 간결한 단일 명령문으로 해당 값을 개별 변수에 할당할 수 있습니다.
id, name, location = employee1 print(f"id: {id}, name: {name}, location:{location}")
"Namedtuples"를 다른 데이터 구조로 변환
list() 생성자를 사용하여 명명된 tuples 을 목록으로 변환할 수 있습니다. 예는 다음과 같습니다.
list(employee1) # [10, 'John Doe', 'Atlanta']
일반 사전으로 변환할 수 있는 OrderedDict를 반환하는 "_asdict()" 메서드를 사용하여 명명된 튜플을 사전으로 변환할 수 있습니다. 예를 들면 다음과 같습니다.
dict(employee1._asdict()) # {'id': 10, 'name': 'John Doe', 'location': 'Atlanta'}
가독성: "Namedtuples"는 요소에 의미 있는 이름을 지정하여 코드를 더 읽기 쉽게 만들어 인덱스 기반 액세스가 필요한 번거로움을 제거합니다.
돌연변이: 일반 튜플과 마찬가지로 "Namedtuples"는 변경할 수 없습니다. 일단 생성되면 해당 값을 변경할 수 없습니다.
메모리 효율성: "Namedtuples"는 메모리 효율적이므로 동등한 클래스보다 공간을 덜 차지합니다. Namedtuples를 사용하여 얻은 메모리 효율성은 많은 수의 인스턴스가 포함된 시나리오에서 또는 대규모 데이터 세트로 작업할 때 더 일반적이라는 점에 유의하는 것이 중요합니다.
경량 데이터 구조: 맞춤 메서드 없이 간단한 클래스를 만드는 데 적합합니다.
데이터 저장: 특히 완전한 수업이 필요하지 않은 경우 구조화된 데이터를 저장하는 데 편리합니다.
API 및 데이터베이스 레코드: 데이터베이스에서 반환된 레코드 또는 API에서 받은 데이터를 나타내는 데 사용됩니다.
Python의 "Namedtuple"은 구성 설정과 같이 이름이 지정된 필드가 있는 간단한
불변 데이터구조가 필요한 시나리오에 이상적입니다. 명확성과 사용 편의성을 위해 이름이 지정된 필드로 구성 설정을 나타내려면 "Namedtuple"을 사용하세요.
데이터베이스 레코드: "Namedtuple"은 데이터베이스 레코드를 나타낼 수 있으므로 어떤 필드가 테이블의 어떤 열에 해당하는지 명확하게 알 수 있습니다.
명령줄 구문 분석: "Namedtuple"을 사용하여 구문 분석된 명령줄 매개변수를 저장하고 입력 매개변수에 대한 명확한 구조를 제공합니다.
명명된 상수: "Namedtuple"은 코드에서 명명된 상수를 나타내는 데 사용할 수 있으며 상수 값을 정의하는 명확하고 읽기 쉬운 방법을 제공합니다.
"Namedtuples"는 명확성, 가독성 및 불변성을 제공하여 이러한 시나리오에서 탁월하며 간결하게 구조화된 데이터를 위한 귀중한 도구입니다.
위 내용은 Python 명명된 튜플로 코드 명확성 향상의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!