Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

행복한 개구리

Python 공부내용 21.09.26. Python - Tuples 본문

Python/공부내용

Python 공부내용 21.09.26. Python - Tuples

HappyFrog 2021. 9. 26. 19:47

W3Schools의 Python Tutorial을 보며 해석하고 정리한 글입니다.

오역이 존재할 수 있습니다

저도 파이썬은 처음이니 가볍게 봐주세요 :D 

W3Schools


파이썬 튜플

튜플

튜플은 여러가지의 아이템들을 하나의 변수에 저장할 때 사용됩니다.

 

튜플은 파이썬에 빌트인 되어있는 컬렉션형식의 4가지 데이터타입 중 하나이며, 나머지 3가지는 리스트, 셋, 딕셔너리입니다. 이것들은 성질이나 쓰임새가 다릅니다.

 

튜플은 정렬되고 가변성이 없는 컬렉션입니다.

 

튜플은 소괄호 ( )  를 사용합니다.

thistuple = ("apple", "banana", "cherry")
print(thistuple)

▲ 결과값 // 설명에도 나왔듯이 튜플은 소괄호를 사용합니다.


튜플의 항목들(Tuple Items)

튜플의 아이템들은 정렬되어있으며, 불변이고 값을 중복값을 가질 수 있습니다.

튜플의 아이템들은 인덱스를 가지며 첫 인덱스는  [0] , 두번째 인덱스는  [1]  와 같은 순서로 진행됩니다.


정렬되어 있음

우리가 튜플이 정렬되어있다고 할 때, 이 말의 의미는 아이템들이 정의된 순서를 가지며 그 순서는 변하지 않음을 의미합니다.


불변

튜플은 변경할 수 없습니다. 즉, 우리는 튜플을 생성한 이후에 튜플의 아이템들을 변경하거나 더하고, 지우는 행위를 할 수 없습니다.


중복 가능

튜플들에 인덱스가 매겨진 후에는 튜플에 있는 아이템과 같은 값을 가진 값을 튜플에 추가할 수 있습니다.

thistuple = ("apple", "banana", "cherry", "apple", "banana")
print(thistuple)

▲ 결과값


파이썬 - 튜플 아이템들에 접근하기

튜플아이템에 접근하기

당신은 대괄호 안에 인덱스 번호를 적음으로서 튜플의 아이템들에 접근할 수 있습니다.

thistuple = ("apple", "banana", "cherry")
print(thistuple[1])

▲ 결과값 // 리스트와 비슷합니다.

 

주의 : 첫 아이템의 인덱스는 0 입니다.

 

음수 인덱싱

음수 인덱싱은 끝에서부터 시작하는 것을 의미합니다.

 -1  은 마지막 아이템을 의미하며,  -2  는 마지막에서 두번째에 있는 아이템을 의미하는 식입니다.

thistuple = ("apple", "banana", "cherry")
print(thistuple[-1])

▲ 결과값

 

인덱스의 범위

당신은 인덱스들의 시작과 끝의 범위를 특정할 수 있습니다.

당신이 그 범위를 특정할 때 새로운 튜플에 당신이 지정한 범위의 아이템들이 값으로 반환됩니다.

thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[2:5])

▲ 결과값

 

시작값을 비워둔다면 범위는 제일 처음 아이템부터 시작합니다.

thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[:4])

▲ 결과값

 

마지막 값을 비워둔다면 범위는 제일 마지막 아이템까지 설정됩니다.

thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[2:])

▲ 결과값


파이썬 - 튜플 업데이트

튜플들은 생성된 이후에는 아이템이 변하거나 추가되거나 지워지지 않습니다.

 

그러나 해결방법이 있습니다.


튜플값 바꾸기

튜플이 한번 생성되면 당신은 그것의 값을 바꿀 수 없습니다. 튜플은 불변한다고 불리기 때문입니다.

 

하지만 해결방법이 있습니다. 당신은 튜플을 리스트로 변환한 뒤에 리스트의 값들을 변경하고 그리고 다시 튜플로 바꿔주면 됩니다. [튜플 => 리스트(값 변경) => 튜플]

x = ("apple", "banana", "cherry")
y = list(x)
y[1] = "kiwi"
x = tuple(y)

print(x)

▲ 결과값


아이템 추가하기

튜플이 불변성을 띄기 때문에  append()  메서드를 가지지 않습니다. 하지만 튜플에 아이템을 추가할 수 있는 다른 방법이 존재합니다.

 

1. 리스트로 변환하기 : 튜플을 변경할 때의 해결법처럼 튜플을 리스트로 바꾸고 아이템을 추가한 뒤 다시 튜플로 바꿔줍니다.

thistuple = ("apple", "banana", "cherry")
y = list(thistuple)
y.append("orange")
thistuple = tuple(y)

print(thistuple)

▲ 결과값

 

2. 튜플에 튜플 더하기 : 당신은 튜플에 튜플을 더할 수 있습니다. 따라서 당신이 한 개 이상의 아이템을 더하고싶다면 추가할 아이템을 가진 새로운 튜플을 만들고 기존의 튜플에 더해주면 됩니다.

thistuple = ("appel", "banana", "cherry")
y  = ("orange",)
thistuple += y

print(thistuple)

▲ 결과값

 

주의 : 당신의 하나의 아이템을 가진 튜플을 만들 때, 아이템 뒤에 쉼표를 붙이는 것을 잊지마세요. 그렇지 않다면 이것은 튜플로 정의되지 않을 것입니다.


아이템 지우기

튜플은 분변합니다. 따라서 당신은 이것의 아이템을 지울 수 없습니다. 하지만 같은 아이템을 더하거나 변경할 때와 같은 해결방법을 이용한다면 튜플의 아이템도 지울 수 있습니다.

thistuple = ("apple", "banana", "cherry")
y = list(thistuple)
y.remove("apple")
thistuple = tuple(y)

▲ 결과값

 

또는 튜플을 통째로 지우는 방법도 있습니다.

thistuple = ("apple", "banana", "cherry")
del thistuple
print(thistuple)	# 튜플이 더 이상 존재하지 않기 때문에 이것은 에러를 띄울 것입니다.

▲ 결과값 // thistuple의 객체가 사라졌기 때문에 해당 객체가 없다는 에러를 출력합니다.


파이썬 - 튜플 언팩하기(Unpack Tuples)

튜플 언패킹(Unpakcing a Tuple)

우리가 튜플을 생성할 때 우리는 보통 값들을 할당합니다. 이것을 튜플을 "패킹" 한다고 합니다.

 

그러나 파이썬에서는 값들을 추출하여 변수로 만들 수 있습니다. 이것을 우리는 "언패킹"이라고 합니다.

fruits = ("apple", "banana", "cherry")

(green, yellow, red) = fruits

print(green)
print(yellow)
print(red)

▲ 결과값

 

주의 : 변수의 갯수는 반드시 튜플의 값들의 갯수와 일치해야합니다. 변수의 갯수가 다르다면 반드시 별표(*)를 사용하여 남는 값들을 리스트로 모아야합니다.


별표 사용하기*

만약 변수의 수가 값의 수보다 작다면 당신은 변수 이름에 *을 추가함으로써 값들을 리스트 형식로 할당할 수 있습니다.

fruits = ("apple", "banana", "cherry", "strawberry", "raspberry")

(green, yellow, *red) = fruits
print(green)
print(yellow)
print(red)

▲ 결과값 // red가 리스트가 된 것을 확인할 수 있습니다.

 

만약 마지막 변수의 이름이 아닌 다른 것에 별표가 추가되었다면 파이썬은 값들을 남은 변수들의 갯수에 맞게 남겨둔 뒤 남은 변수들을 별표가 추가된 변수에 할당할 것입니다.

fruits = ("apple", "mango", "papaya", "pineapple", "cherry")

(green, *tropic, red) = fruits

print(green)
print(tropic)
print(red)

▲ 결과값 // 알아서 값을 남겨둔 뒤 나머지를 모두 할당하는 모습입니다.


파이썬 - 튜플 반복하기

튜플을 통해 반복하기

당신은  for 문을 사용하여 튜플의 아이템들을 통해 반복할 수 있습니다.

# 아이템들을 반복하여 거치며 값들을 출력합니다.
thistuple = ("apple", "banana", "cherry")
for x in thistuple:
	print(x)

▲ 결과값

 

인덱스 번호들을 통해 반복하기

당신은 또한 튜플아이템들의 인덱스 번호들을 참조하여 반복할 수 있습니다.

 range()  len()  함수를 사용하여 알맞은 반복문을 사용할 수 있습니다.

thistuple = ("apple", "banana", "cherry")
for i in range(len(thistuple)):
	print(thistuple[i])

▲ 결과값

 

While문 사용하여 반복하기

당신은  while  문을 사용하여 반복할 수 있습니다.

 

 len()  함수를 사용하여 튜플의 길이를 측정하고 튜플 아이템의 인덱스 0부터 시작하여 거쳐가며 반복할 수 있습니다.

한 번 반복할 때마다 인덱스를 1씩 늘려주는 것을 잊지마세요.

thistuple = ("apple", "banana", "cherry")
i = 0
while i < len(thistuple):
	print(thistuple[i])
    i = i + 1

▲ 결과값


파이썬 - 튜플 합치기

튜플 두개 합치기

두개 이상의 튜플을 합치려면  + 연산자를 사용하면 됩니다.

tuple1 = ("a", "b", "c")
tuple2 = (1, 2, 3)

tuple3 = tuple1 + tuple2
print(tuple3)

▲ 결과값


튜플에서 사용할 수 있는 메서드

출처 W3Schools