물론입니다 (제공 한 예의 경우).
튜플은 파이썬에서 일류 시민입니다.
divmod()
정확히 그렇게 하는 내장 함수 가 있습니다.
q, r = divmod(x, y)
다른 예는 다음과 같습니다 zip
, enumerate
, dict.items
.
for i, e in enumerate([1, 3, 3]):
print "index=%d, element=%s" % (i, e)
d = dict((v, k) for k, v in adict.items())
d = dict(zip(adict.values(), adict.keys()))
BTW, 괄호는 대부분 필요하지 않습니다. Python Library Reference 에서 인용 :
튜플은 여러 가지 방법으로 구성 할 수 있습니다.
- 한 쌍의 괄호를 사용하여 빈 튜플 표시 : ()
- 싱글 톤 튜플에 후행 쉼표 사용 : a 또는 (a,)
- 쉼표로 항목 구분 : a, b, c 또는 (a, b, c)
- 내장 tuple () 사용 : tuple () 또는 tuple (iterable)
기능은 단일 용도로 사용되어야합니다.
따라서 단일 객체를 반환해야합니다. 귀하의 경우이 객체는 튜플입니다. 튜플을 임시 복합 데이터 구조로 간주하십시오. 거의 모든 단일 함수가 여러 값을 반환하는 언어가 있습니다 (Lisp의 목록).
때로는 (x, y)
대신 반환하는 것으로 충분합니다 Point(x, y)
.
명명 된 튜플
Python 2.6에 명명 된 튜플이 도입되면서 많은 경우 일반 튜플 대신 명명 된 튜플을 반환하는 것이 좋습니다.
>>> import collections
>>> Point = collections.namedtuple('Point', 'x y')
>>> x, y = Point(0, 1)
>>> p = Point(x, y)
>>> x, y, p
(0, 1, Point(x=0, y=1))
>>> p.x, p.y, p[0], p[1]
(0, 1, 0, 1)
>>> for i in p:
... print(i)
...
0
1