Python/파이썬 심화

네임드 튜플 (2)

monstro 2025. 8. 4. 23:51
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)

 

생성한 네임드튜플인 Point3Point4로부터 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