Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 네임드 튜플(namedtuple)이란? 개념과 사용법 쉽게 배우기

파이썬 튜플(Tuple)의 기본 개념

파이썬에서 튜플(tuple)은 괄호 안에 쉼표로 구분된 여러 필드 값을 담는 불변(immutable) 자료 구조입니다. 일반적인 튜플에서는 각 필드의 값을 인덱스(index)를 통해 식별하고 접근합니다.

>>> student = (1, "Ravi", 23, 546)
>>> rollno = student[0]
>>> name = student[1]
>>> age = student[2]
>>> marks = student[3]
>>> print(rollno, name, age, marks)
1 Ravi 23 546

위 예제처럼 인덱스로 값에 접근하는 방식은 간단하지만, 필드의 개수가 많아지거나 데이터 구조가 복잡해지면 각 인덱스가 어떤 의미를 갖는지 파악하기 어려워져 코드의 가독성이 떨어질 수 있습니다.

네임드 튜플(namedtuple)이란?

네임드 튜플(named tuple)은 정의 시점에 각 필드에 이름을 부여할 수 있는 특별한 형태의 튜플입니다. collections 모듈에서 제공하는 namedtuple() 팩토리 함수를 사용하면 이름이 지정된 필드를 가진 튜플 클래스를 손쉽게 생성할 수 있습니다.

네임드 튜플의 가장 큰 장점은 인덱스뿐만 아니라 필드 이름으로도 값에 접근할 수 있다는 점입니다. 덕분에 코드가 훨씬 직관적이고 읽기 쉬워집니다.

네임드 튜플 사용 방법

먼저 collections 모듈에서 namedtuple을 임포트합니다.

>>> from collections import namedtuple

다음으로 필드 이름을 지정해 네임드 튜플을 정의하고, 일반 튜플과 동일한 방식으로 인스턴스를 생성합니다.

>>> student = namedtuple('student', ('rollno', 'name', 'age', 'marks'))
>>> s1 = student(1, "Ravi", 23, 546)
>>> s1
student(rollno=1, name='Ravi', age=23, marks=546)

생성된 객체의 값은 아래와 같이 필드 이름을 통해 직관적으로 접근할 수 있습니다.

>>> s1.rollno
1
>>> s1.name
'Ravi'
>>> s1.age
23
>>> s1.marks
546

정리

네임드 튜플은 일반 튜플의 메모리 효율성과 불변성을 그대로 유지하면서, 필드 이름을 통한 가독성 높은 접근 방식을 더한 자료형입니다. 학생 정보처럼 각 값에 의미 있는 레이블이 필요한 데이터를 다룰 때 특히 유용하게 활용할 수 있습니다.