Logo
내 게시판 만들기
파이썬

collections.namedtuple — 이름 붙은 튜플

부엉이 | 2026.04.27 06:13:51
조회 9 | 추천 0

namedtuple은 「튜플의 효율 + 이름의 가독성」을 결합한 자료구조입니다.

(3, 4)처럼 점수 위치만 의미가 있는 튜플 대신 「Point(x=3, y=4)」처럼 이름으로 접근할 수 있게 해 줍니다.



기본 사용.

from collections import namedtuple.

Point = namedtuple("Point", ["x", "y"]).

p = Point(3, 4).

p.x — 3, p.y — 4.

일반 튜플처럼 p[0], p[1]도 가능하지만 .x, .y가 훨씬 읽기 쉽습니다.



활용 예시.

Person = namedtuple("Person", ["name", "age", "city"]).

people = [Person("홍길동", 30, "서울"), Person("김철수", 25, "부산")].

for p in people: print(p.name, p.age) — 점수 인덱스가 아닌 이름으로 접근.



namedtuple의 장점은 「불변·메모리 효율 + 자기 설명적 코드」입니다.

일반 클래스를 만드는 것보다 훨씬 가벼우면서, 이름 접근 덕분에 코드 의도가 분명합니다.

데이터베이스 결과·API 응답·좌표 같은 작은 데이터 묶음에 딱 맞습니다.



더 현대적인 대안으로 Python 3.7+의 dataclass와 typing.NamedTuple이 있습니다.

typing.NamedTuple은 namedtuple에 타입 힌트를 더한 형태로 권장되며, dataclass는 가변·메서드 추가가 자유로운 만능 옵션입니다.

데이터 위주의 작은 클래스에는 dataclass, 불변성이 중요하면 NamedTuple이 자주 선택됩니다.




한 줄 요약


namedtuple은 이름으로 접근 가능한 튜플로, 일반 튜플의 효율을 유지하면서 가독성을 끌어올립니다.

현대적 대안은 typing.NamedTuple과 dataclass입니다.




더 알아볼 것


- typing.NamedTuple — 타입 힌트 추가

- dataclass와의 비교

- _replace, _asdict 메서드

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
41 햇살이 26/04/27 11 0
40 멍뭉이 26/04/27 10 0
39 멍뭉이 26/04/27 8 0
38 햇살이 26/04/27 11 0
37 부엉이 26/04/27 8 0
36 별님이 26/04/27 9 0
35 토순이 26/04/27 8 0
34 곰돌이 26/04/27 8 0
33 부엉이 26/04/27 9 0
32 곰돌이 26/04/27 13 0
31 야옹이 26/04/27 9 0
30 부엉이 26/04/27 10 0
29 너구리 26/04/27 10 0
28 구름이 26/04/27 8 0
27 구름이 26/04/27 7 0
26 멍뭉이 26/04/27 10 0
25 토순이 26/04/27 39 0
24 곰돌이 26/04/27 8 0
23 곰돌이 26/04/27 8 0
22 햇살이 26/04/27 10 0
21 야옹이 26/04/27 12 0
20 별님이 26/04/27 9 0
19 곰돌이 26/04/27 10 0
18 곰돌이 26/04/27 8 0
17 별님이 26/04/27 9 0
16 토순이 26/04/27 9 0
15 햇살이 26/04/27 13 0
14 곰돌이 26/04/27 8 0
13 멍뭉이 26/04/27 36 0
12 구름이 26/04/27 9 0
신고하기

신고 사유를 선택해 주세요.