Python/파이썬 심화

네임드 튜플 (1)

monstro 2025. 8. 4. 21:31
728x90
반응형

- 개요

튜플 immutable 타입의 인스턴스로서, 한번 저장되면 값을 변경할 수 없다

값을 수정할 필요가 없는 정보를 저장하는 부분에서는 효과적이지만,

정보에 대한 표현 방법따로 존재하지 않아, 인덱스를 통해 접근하여 정보를 표현한다

 

하지만, 네임드 튜플을 사용하면 튜플의 이점을 가져가는 동시에, 저장하는 정보에 대한 라벨링이 가능하다

이런 네임드 튜플에 대한 예제를 통해 사용방법을 정리한다

 

예제는 데카르트 좌표계에서 두 점 사이의 거리를 구하는 공식의 표현이다

두 점 사이의 거리는 다음의 공식을 통해 구할 수 있다

두 점 사이의 거리

 

1) 일반적인 튜플의 사용

from math import sqrt

pt1 = (1.0, 5.0)
pt2 = (2.5, 1.5)

l_len1 = sqrt((pt1[0] - pt2[0]) ** 2 + (pt1[1] - pt2[1]) ** 2)
print(l_len1)

 

위와 같이 튜플 인스턴스 pt1pt2를 생성하였다

두 인스턴스에 저장된 정보가 무엇을 의미하는지 알 수 없고 인덱스를 통한 직접 접근을 통해 정보에 접근해야 한다

 

 

일반적인 튜플을 이용해 저장된 데이터에 인덱스로 접근하여 계산한 두 점 사이의 거리는 위와 같다

 

2) 네임드 튜플의 사용

from collections import namedtuple

# 네임드 튜플 선언
Point = namedtuple(typename='Point', field_names='x y')

# 네임드 튜플 인스턴스 선언
pt3 = Point(1.0, 5.0)
pt4 = Point(2.5, 1.5)

l_len2 = sqrt((pt3.x - pt4.x) ** 2 + (pt3.y - pt4.y) ** 2)
print(l_len2)

 

네임드 튜플을 사용하기 위해서는 collections 모듈로부터 namedtuple을 임포트해야 한다

네임드 튜플을 선언하면서 사용한 인자들은 다음과 같다

  • typename : 네임드튜플로 사용할 자료형의 이름
  • field_names : 네임드 튜플의 필드를 구성하는 문자열 또는 iterable 객체

예시 코드에서는 네임드 튜플을 Point라는 이름으로 사용하고, x와 y라는 라벨을 갖도록 설정하였다

따라서 Point 튜플에 저장하는 데이터들x와 y라는 라벨로 접근할 수 있다

 

 

네임드 튜플을 통해 저장된 데이터에 라벨로 접근하여 계산한 두 점 사이의 거리는 위와 같다

 

 

728x90
반응형

'Python > 파이썬 심화' 카테고리의 다른 글

파이썬 시퀀스 (1)  (0) 2025.08.05
네임드 튜플 (2)  (0) 2025.08.04
매직 메서드 (3)  (0) 2025.08.04
매직 메서드 (2)  (0) 2025.07.29
매직 메서드 (1)  (0) 2025.07.29