Channi Studies

Tuple 튜플 본문

python

Tuple 튜플

Chan Lee 2025. 1. 26. 23:33

tuple: An immutable sequence similar to a list.

triple = (5, 10, 15)
triple2 = 5, 10, 15

When creating a tuple, you can either use or omit the paranthesis. 

이 글에서는 튜플이 파이썬에서 사용되는 몇가지 간단한 예를 알아보겠습니다.

 

 

파이썬에서는 여러개의 인자를 입력받는 함수들이 존재합니다. 

예를 들면 sum 함수가 있습니다. 

a = sum(1, 3)		# Set a = 4
b = sum(1, 3, 5, 7)	# Set b = 16

보시다시피 2개, 4개, 또는 그 이상의 인자를 입력 받습니다.

 

이러한 sum 함수를 직접 구현하자면, asterisk (*) 를 사용합니다.

def sum(*values):
    total = 0
    for element in values:
    	total = total + element
    
    return total

여기서 values parameter는 사실 tuple 데이터 형태입니다. 

즉, sum(1, 3, 5, 7)과 같은 형태로 전달된 인자들은 (1, 3, 5, 7)이 tuple의 형태로 전달되는 방식입니다. 

 

또한, 하나의 함수에서 고정된 개수의 인자 + 다양한 수의 인자를 입력받고자 할 시, 다음과 같이 작성합니다.

def studentGrades(idNum, name, *grades):
    ...

이러한 경우, 첫번째 인자 = idNum, 두번째 인자 = name 으로 전달되고, 

이후의 n개의 인자들은 모두 grades로 tuple의 형태로 전달됩니다. 

 

위처럼 fixed parameter variable, 고정된 개수의 파라미터 변수와 다양한 수의 인자를 동시에 사용하고자 하면 tuple parameter가 반드시 마지막에 위치해야 합니다. 

 

 

또한 튜플이 사용되는 다른 예는 Tuple Assignment가 있습니다. 

(price, quantity) = (19.95, 12)		# Can omit paranthesis on both sides

# is same as

price = 19.95
quantity = 12

이처럼 tuple assignment를 사용하면 2개 이상의 값을 한번에 assign할 수 있습니다. 

일반적으로 사용되지는 않지만, 알아두면 좋습니다. 

 

다만 여기서 편리하게 사용될 수 있는 것은 두개의 값을 swap할 때 입니다. 

일반적으로 우리는 두개의 변수에 저장된 값을 교체할 때, temporary 변수에 하나를 저장하고 하나씩 옮겨서 assign 합니다. 

하지만, 다음과 같이 하면 한 줄로 이를 행할 수 있습니다. 

(variable1, variable2) = (variable2, variable1)		# Swapping variables
(myList[i], myList[j]) = (myList[j], myList[i])		# Swapping list elements

 

 

마지막으로, 함수의 반환 값으로 여러개의 값을 받을 때 또한 튜플을 사용할 수 있습니다. 

def readDate() :
   print("Enter a date:")
   month = int(input(" month: "))
   day = int(input(" day: "))
   year = int(input(" year: "))
   return (month, day, year)   # Returns a tuple

위와 같은 함수는 반환값으로 총 세개의 정수가 들어있는 tuple을 반환합니다. 

 

즉, 다음과 같이 사용할 수 있습니다. 

(month, day, year) = readDate()		# Again, can omit the paranthesis

'python' 카테고리의 다른 글

Bitwise Operators  (0) 2025.02.21
Files and Exceptions  (0) 2025.02.10
List 리스트  (0) 2025.01.26
Terminating a Program (프로그램 종료)  (0) 2025.01.12
Analyzing String | 문자열 함수들  (0) 2025.01.12