파이썬에서 명명된 튜플이란 무엇입니까?

3315 단어
Python의 명명된 튜플은 개발자의 삶을 더 쉽게 만들어 줄 수 있는 매우 간단하면서도 흥미로운 기능입니다. 이들은 collections 모듈의 일부이며 일반 튜플과 매우 유사하게 작동합니다. 주요 차이점은 명명된 튜플에 저장된 값에 인덱스 대신 필드 이름을 사용하여 액세스할 수 있다는 것입니다.

예를 들어, 2차원 평면의 점은 두 개의 좌표를 사용하여 나타낼 수 있습니다. 일반 튜플에서 이러한 값은 인덱스( [0][1] )에 의해 액세스되지만 명명된 튜플( Point )을 정의하면 대신 xy를 사용하여 액세스할 수 있습니다. 원한다면 여전히 인덱스를 사용할 수 있습니다.)

from collections import namedtuple

# Regular tuple
p = (2, 4) # p[0] = 2, p[1] = 4

# Named tuple
Point = namedtuple('Point', 'x y')
q = Point(3, 5) # q.x = 3, q.y = 5


코드의 가독성 향상 외에도 명명된 튜플은 몇 가지 다른 삶의 질 향상을 제공합니다. 무엇보다도 defaults iterable 인수를 통해 기본값을 지정할 수 있습니다. 둘째, rename 부울 인수를 통해 중복되거나 잘못된 필드의 이름을 자동으로 바꾸는 기능이 있습니다. 마지막으로 필드 이름을 목록 또는 쉼표/공백으로 구분된 문자열로 지정하는 편리한 옵션도 제공합니다.

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y', 'z'], defaults = [1]);
a = Point(1, 1, 0); # a.x = 1, a.y = 1, a.z = 0

# Default value used for `z`
b = Point(2, 2); # b.x = 2, b.y = 2, b.z = 1 (default)


캐치는 어디에 있습니까? 당신은 물어볼 수 있습니다. 음, 없는 것 같군요! 명명된 튜플 인스턴스에는 인스턴스별 사전이 없으므로 일반 튜플만큼 많은 메모리가 필요하므로 구문 측면에서 사전과의 명백한 유사점은 더 이상 가지 않는 것 같습니다.


짧은 고품질 코드 스니펫과 기사가 마음에 드십니까? 우리도 그래! 이와 같은 더 많은 기사를 보려면 30 seconds of code을 방문하거나 일일 JavaScript, React 및 Python 스니펫을 보려면 팔로우하세요! 👨‍💻

좋은 웹페이지 즐겨찾기