728x90
반응형
- 개요
네임드튜플과 관련된 여러가지 정보를 기록한다
구성은 다음과 같다
- 네임드 튜플의 선언 방법
- 딕셔너리의 네임드 튜플 변환
- 튜플 메서드의 활용
1) 네임드 튜플의 선언 방법
# 네임드 튜플 선언 (1)
Point = namedtuple(typename='Point', field_names='x y')
# 네임드 튜플 선언 (2)
Point2 = namedtuple(typename='Point', field_names=['x', 'y'])
# 네임드 튜플 선언 (3)
Point3 = namedtuple(typename='Point', field_names='x, y')
# 네임드 튜플 선언 (4) - 중복된 필드명 사용
Point4 = namedtuple(typename='Point', field_names='x y x class', rename=True)
네임드 튜플의 filed_names 속성의 값으로 필드명으로 사용할 문자열이나 iterable 객체를 사용할 수 있다
이때 위와 같이 공백으로 구분된 문자열 / 시퀀스 자료구조 / 쉼표로 구분된 문자열을 사용할 수 있다
또 필드명이 중복되는 경우 rename 속성을 True로 설정하여 중복으로 사용할 수 있다
p3 = Point3(x=45, y=20)
p4 = Point4(10, 20, 30, 40)
print(p3)
print(p4)
생성한 네임드튜플인 Point3와 Point4로부터 2개의 인스턴스를 생성하고 출력하였다

출력 결과를 확인해보면, rename 어트리뷰트를 True로 설정하여 랜덤값을 필드명에 사용한 것을 확인할 수 있다
2) 딕셔너리를 네임드튜플로 변환
파이썬에서 패킹을 사용하여 여러개의 값을 하나의 객체로 합치는 것이 가능하다
반대로 언패킹을 사용하여 합쳐진 하나의 객체를 여러개의 값으로 풀어주는 것이 가능하다
언패킹을 사용하여 딕셔너리에 저장된 데이터를 네임드튜플의 데이터로 변환하는 것이 가능하다
tmp_dict = {'x' : 75, 'y' : 55}
p5 = Point3(**tmp_dict)
print(p5)
위와 같이 딕셔너리 tmp_dict를 언패킹하여 Point3의 데이터로 변환하였다

실행 결과는 위와 같다
딕셔너리의 데이터가 네임드 튜플의 데이터로 변환된 것을 확인할 수 있다
3) 튜플 메서드의 활용
list = [13, 17]
p6 = Point._make(list)
print(p6)
print(f"{p3._fields} {p4._fields} {p5._fields} {p6._fields}")
print(p3._asdict())
사용한 튜플 메서드는 총 3개로 다음과 같다
- _make 메서드 : 시퀀스 자료구조를 받아 튜플의 인스턴스를 생성
- _fields 메서드 : 튜플의 필드를 확인
- _asdict 메서드 : 튜플을 OrderedDictionary로 변환

실행 결과는 위와 같다
728x90
반응형
'Python > 파이썬 심화' 카테고리의 다른 글
| 파이썬 시퀀스 (2) (0) | 2025.08.05 |
|---|---|
| 파이썬 시퀀스 (1) (0) | 2025.08.05 |
| 네임드 튜플 (1) (0) | 2025.08.04 |
| 매직 메서드 (3) (0) | 2025.08.04 |
| 매직 메서드 (2) (0) | 2025.07.29 |