Login

Search

Learn 🇰🇷
2022.09.21 19:14

4.3 튜플(tuple)

Views 377 Votes 0 Comment 0

오늘은 튜플이라는 자료형이 어떤 쓸모가 있는지 알아보도록 하죠. 리스트와 비슷한 자료형이라는 정도만 알고 시작해 봅시다.

다른 언어를 공부해 보신 분은 두 변수의 값을 서로 바꾸어 본 적이 있으실 텐데요, 보통 다음과 같은 방법을 사용합니다.

>>> a = 10
>>> b = 20
>>> temp = a               # store a to temp   (temp = 10)
>>> a = b                  # store b to a      (a = 20)
>>> b = temp               # store temp to b   (b = 10)
>>> print(a, b)
20 10

 

 

이렇게 두 변수 값을 맞바꾸기 위해선 또 다른 변수 temp가 필요합니다. 좀 번거롭죠? 변수가 많을수록 더 귀찮아질 테구요. 그런데 파이썬에는 이런 일을 간단하게 할 수 있는 기막힌 방법이 있습니다.

>>> c = 10
>>> d = 20
>>> c, d = d, c
>>> print(c, d)
20 10

  

 

너무 간단하지요? 

세 번째 줄에서 등호 왼쪽은 cd라는 변수가 담긴 튜플이구요, 오른쪽은d와 c의 값이 담긴 튜플입니다. 그래서 d의 값은 c로 들어가고, c의 값은 d로 들어갑니다. 이런 일들이 차례차례 일어나는 것이 아니고, 동시에 처리된다는군요.

이번엔 함수에서 튜플이 요긴하게 쓰이는 것을 보여드리지요. 아래의 함수는 인자(매개변수)를 주는 대로 받아먹는 함수입니다.

>>> def magu_print(x, y, *rest):       
...     print(x, y, rest)
...
>>> magu_print(1, 2, 3, 5, 6, 7, 9, 10)
1 2 (3, 5, 6, 7, 9, 10)

  

 

위 함수는 인자를 두 개 이상만 주면 나머진 다 알아서 처리한답니다. 함수를 정의할 때 인자에 별표를 붙여두면 그 이후에 들어오는 것은 모두 튜플에 집어넣는 것이죠. 위에선 (3, 5, 6, 7, 9, 10)가 하나의 튜플로 묶였습니다. 꽤 쓸만할 것 같죠? 다른 언어로 이런 함수를 만들려면 고생 꽤나 해야 할 거예요. 인자를 두 개, 세 개 넣어서도 실험해 보세요.

튜플의 좋은 점들을 구경했으니 이제 문법을 살펴봅시다.

>>> t = ('a', 'b', 'c')

  

 

튜플을 만들 때는 위와 같이 괄호를 써도 되고 안 써도 됩니다. 다만, 원소가 없는 튜플을 만들 때는 괄호를 꼭 써주세요.

>>> empty = ()

  

 

원소를 하나만 가진 튜플을 만들 땐 원소 뒤에 콤마(,)를 꼭 찍어주시고요.

>>> one = 5,
>>> one
(5,)

  

 

그리고 튜플은 리스트와 달리 원소값을 직접 바꿀 수 없기 때문에, 문자열에서 했던 것처럼 오려붙이는 방법을 써야 한다는 것을 알아두세요.

>>> p = (1,2,3)
>>> q = p[:1] + (5,) + p[2:]
>>> q
(1, 5, 3)
>>> r = p[:1], 5, p[2:]
>>> r
((1,), 5, (3,))

  

 

튜플을 리스트로, 리스트를 튜플로 쉽게 바꿀 수도 있답니다.

>>> p = (1, 2, 3)
>>> q = list(p)                  # make list q with tuple p
>>> q
[1, 2, 3]
>>> r = tuple(q)                 # make tuple r with list q
>>> r
(1, 2, 3) 

  

 


List of Articles
No. Subject Author Date Views
Notice Learn What is Python? admin 2024.10.19 990
44 Learn 8.1 Exception handling (try, except) admin 2024.11.17 485
43 Learn 7.1 Class and Instance admin 2024.11.17 512
42 Learn 6.1 Text file admin 2024.11.17 519
41 Learn 5.3 Different modules admin 2024.11.17 514
40 Learn 5.2 Import modules admin 2024.11.17 543
39 Learn 5.1 What is module? admin 2024.11.17 427
38 Learn 4.5 Set admin 2024.11.17 425
37 Learn 4.4 Dictionary admin 2022.09.29 406
36 Learn 4.3 Tuple admin 2024.11.17 439
35 Learn 4.2 String and List admin 2024.11.17 434
34 Learn 4.1 Data types admin 2024.11.17 414
33 Learn 3.4 Lambda admin 2024.11.17 416
32 Learn 3.3 Global and local variables admin 2024.11.17 441
31 Learn 3.2 return statement admin 2022.11.29 426
30 Learn 3.1 Function admin 2022.11.27 436
29 Learn 2.3 Iterative statements using for loop admin 2022.11.26 422
28 Learn 2.2 if-elif-else statements admin 2022.11.22 394
27 Learn 2.1 Iterative statements using while admin 2022.11.19 434
26 Learn 1.4 Interpreter and Compiler admin 2022.11.05 412
25 Learn 1.3 LIst admin 2022.11.03 431
Board Pagination Prev 1 2 3 Next
/ 3