반응형
파이썬에서 간편하게 튜플을 사용하면서 label을 지정할 수 있는 namedtuple에 대해 알아보겠습니다.
class 예시
class Book:
def __init__(self, title, price):
self.title = title
self.price = price
mybook = Book("파이썬을 이용한 비트코인 자동매매", 27000)
print(mybook.title, mybook.price)
Book이라는 클래스는 title, price 속성을 가지고 있습니다.
Book 객체를 사용하기 위해서는 class 선언을 필요로 합니다.
tuple 예시
mybook2 = ("파이썬을 이용한 비트코인 자동매매", 27000)
print(mybook2[0], mybook2[1])
튜플을 통해서도 간단하게 책 제목과 가격을 표현할 수 있습니다.
하지만, 첫 번째 필드가 책 제목인지, 책 가격인지 알 수가 없습니다.
파이썬의 tuple은 immutable(불변성) 타입으로 값 변경이 필요가 없는 데이터를 효과적으로 저장합니다.
다만, 클래스나 딕셔너리와 비교하면 어떤 값에 대한 label인지 알 수 없는 문제가 있습니다.
이를 namedtuple을 사용하면 간단하게 클래스처럼 객체를 생성하고 튜플의 장점인 immutable을 적용할 수 있습니다.
🔥 namedtuple 예시
from collections import namedtuple
Book = namedtuple('Book', ['title', 'price'])
mybook3 = Book("파이썬을 이용한 비트코인 자동매매", 27000)
mybook4 = Book(title="파이썬 연습하기", price=10000)
print(mybook3.title, mybook3.price)
print(mybook4.title, mybook4.price)
namedtuple 함수를 통해 2개의 속성을 갖는 Book 클래스를 생성하였습니다.
이를 통해 객체를 생성해 사용할 수 있습니다.
collections.namedtuple(typename, field_names, *, rename=False, defaults=None, module=None)
- 첫 번째 인자에는 typename으로 사용할 객체명을 작성해 줍니다.
- 두 번째 인자에는 설정할 객체 속성을 작성합니다. 여러 개인 경우 아래와 같이 작성할 수 있습니다.
- ['x', 'y'] / 'x y' / 'x, y'
참고자료
https://docs.python.org/3/library/collections.html#collections.namedtuple
반응형
'Python > Python' 카테고리의 다른 글
[Python] 파이썬 all, any 함수 사용법 (1) | 2024.09.16 |
---|---|
[python] 파이썬 소수 구하기, 에라토스테네스의 체 - 시간 복잡도 최적화 (1) | 2023.10.10 |
[Python] 파이썬 문자열 변환하기 (replace), 문자 인덱스 찾기 (index, find) - python 문자열 처리 함수 (0) | 2023.08.31 |
[Python] 파이썬 딕셔너리(dictionary) key-value 값을 기준으로 정렬하기 - lambda 함수 응용 (0) | 2023.08.31 |
[Python] 파이썬 lambda 람다 함수 사용법 및 설명 (0) | 2023.08.31 |