정리노트

[파이썬/python] [튜플] 기본원리 본문

프로그래밍/Python

[파이썬/python] [튜플] 기본원리

Rolen 2022. 9. 28. 22:36

[튜플]은 [리스트]처럼 여러 개의 요소를 가지는 컬렉션 자료형이다.

리스트와의 차이점

"튜플 내부의 객체를 변경하거나 삭제할 수 없고 순서를 바꿀 수 없다."

 

그럼에도 튜플을 사용하는 이유는 아래의 링크를 참고

https://fierycoding.tistory.com/59

 

[python]튜플, 왜 쓰는걸까?

튜플의 생김새는 아래와 같습니다. data = (1,2) 가장 흔하게 볼 수 있는 생김새는 다른 자료구조 내부에 element로 포함된 모양새입니다. data = [(1,2), (2,3), (3,4)] 그런데 왜 이 튜플 타입을 사용해야 하

fierycoding.tistory.com

 

>> 튜플 생성 <<

tuple = ()		# 빈 튜플
tuple = (10,)	# 초기값이 하나인 경우 반드시 ,를 사용
# ,사용하지 않는 경우 출력비교
#		tuple = (10) // 10
#		tuple = (1,) // (10,)
tuple = (1, 2, 3, 4)	# 기본적인 튜플 생성방법
tuple = 1, 2, 3, 4		# 간단한 튜플

# 리스트를 튜플로
lst = [1, 2, 3, 4]
tuple = tuple(lst) # (1, 2, 3, 4)

 

튜플 내부의 값을 가져오는 가장 기본적인 방법은 index를 이용한다. (리스트 index와 동일개념)

그러나, 값을 바꿀 수는 없다.

tuple = (1, 2, 3, 4)
print(tuple[0])		# 1
tuple[0] = 100		# 에러

 

>> 튜플의 패킹과 언패킹 <<

응용하여 값변경과 스왑 진행 예시

a = (1, 2)		# 튜플 패킹
b, c = a		# 튜플 언패킹
print(b)		# 1
print(c)		# 2

=======================================
튜플의 값 변경 (튜플 -> 리스트 -> 튜플)

num = (1, 2, 3)
cat[0] = 4	# 에러
cat = list(cat)	 # 리스트로 변경
cat[0] = 4
cat = tuple(cat) # 튜플로 변경
print(cat)		 # (4, 2, 3)

=======================================
값 swap하기
# 일반적인 swap
a = 10
b = 20
temp = a
a = b
b = a
print(f"a = {a}, b = {b}")	# a = 20, b = 10

# 튜플을 이용한 swap
a = 100
b = 200
a, b = b, a
print(f"a = {a}, b = {b}")	# a = 200, b = 100

>> 튜플의 연산 <<

a1 = (1, 2, 3)
a2 = a1 + a1
print(a2)	# (1, 2, 3, 1, 2, 3)

a1 = (10, 20, 30)
a2 = a1 * 2
print(a2)	# (10, 20, 30, 10, 20, 30)

a2 = a1 + 10	# 에러
a2 = a1 + (10,)	# (10, 20, 10)

>> 튜플의 메소드 <<

# count(a)	튜플 내의 a개수 반환
# index(a)	튜플 내의 a의 위치반환. 중복값 존재시 첫 index 반환

t = (1, 2, 3, 3, 4)
t.count(3)	# 2
t.index(3)	# 2

* 함수에서 return 은 한가지만 반환이 되지만

두가지를 return 반환하도록 입력을 하면 튜플로 반환이된다.

* 튜플도 슬라이싱 가능

728x90