인프런 파이썬 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.
기초 자료형(튜플)
- 기본 개념
튜플 자료형은 순서가 있고 중복이 가능하지만, 수정 및 삭제가 불가능한 자료형이다.
이러한 특징으로 절대 변경되면 안되는 중요한 데이터를 저장할 때 사용한다.
# 선언 방식 a = () b = (1) c = (1,) d = (1, 2, 3, 4) print(type(a), type(b), type(c), type(d)) # 결과 : <class 'tuple'> <class 'int'> <class 'tuple'> <class 'tuple'> # 튜플의 데이터가 1개인 경우에는 반드시 데이터 뒤에 ,기호를 함께 넣어야만 # 튜플 데이터 타입을 갖게 된다.(데이터가 2개 이상일 경우에는 ,기호 필요X) # 단, 변수에 괄호()없이 데이터를 선언해도 튜플이 되며 시퀀스형이다. # 수정 예시 d[0] = 1500 # 결과 : TypeError: 'tuple' object does not support item assignment # 튜플의 데이터를 수정하는 경우, 에러가 발생하며 수정이 이루어지지 않는다.
- 응용 개념
# 인덱싱 예시 a = () b = (1,) c = (11, 12, 13, 14) d = (100, 1000, 'Ace', 'Base', 'Color') e = (100, 1000, ('Ace', 'Base', 'Color')) print('d - ', d[1]) # 결과 : d - 1000 print('d - ', d[0] + d[1] + d[1]) # 결과 : d - 2100 print('d - ', d[-1]) # 결과 : d - Color print('e - ', e[-1]) # 결과 : e - ('Ace', 'Base', 'Color') print('e - ', e[-1][1]) # 결과 : e - Base print('e - ', list(e[-1][1])) # 결과 : e - ['B', 'a', 's', 'e'] # 튜플을 리스트로 바꾸는 형 변환을 한 것이다. # 슬라이싱 예시 a = () b = (1,) c = (11, 12, 13, 14) d = (100, 1000, 'Ace', 'Base', 'Color') e = (100, 1000, ('Ace', 'Base', 'Color')) print('d - ', d[0:3]) # 결과 : d - (100, 1000, 'Ace') print('d - ', d[2:]) # 결과 : d - ('Ace', 'Base', 'Color') print('e - ', e[2][1:3]) # 결과 : e - ('Base', 'Color') # 튜플의 연산 예시 a = () b = (1,) c = (11, 12, 13, 14) d = (100, 1000, 'Ace', 'Base', 'Color') e = (100, 1000, ('Ace', 'Base', 'Color')) print('c + d', c + d) # 결과 : c + d (11, 12, 13, 14, 100, 1000, 'Ace', 'Base', 'Color') # 튜플 c의 마지막 부분에 튜플 d의 데이터가 더해진다. # 즉, 두 튜플을 더하는 경우에는 튜플의 데이터가 합쳐진다. print('c * 3', c * 3) # 결과 : c * 3 (11, 12, 13, 14, 11, 12, 13, 14, 11, 12, 13, 14) # 튜플의 데이터가 순서를 유지하면서 곱한 횟수만큼 반복된다. # 즉, 튜플의 곱연산은 데이터를 반복한다.(데이터 순서 유지) # 튜플 함수 예시 a = (5, 2, 3, 1, 4) print('a - ', a) print('a - ', a.index(3)) # 결과 : a - 2 # index( ) 함수는 특정 데이터의 인덱스 번호를 알려준다. print('a - ', a.count(2)) # 결과 : a - 1 # count( ) 함수는 특정 데이터의 인덱스 번호로 알려준다. # 팩킹 & 언팩킹 예시(중요) # 팩킹(튜플을 선언하는 것) t = ('foo', 'bar', 'baz', 'qux') print(t) # 결과 : ('foo', 'bar', 'baz', 'qux') print(t[0]) # 결과 : foo print(t[-1]) # 결과 : qux # 이렇게 여러개의 데이터를 하나로 묶는 것을 팩킹이라고 한다.(여기서는 튜플과 동일 개념) # 언팩킹(튜플의 데이터를 풀어서 변수들에 할당 혹은 대입하는 것) t = ('foo', 'bar', 'baz', 'qux') (x1, x2, x3, x4) = t print(type(x1), type(x2), type(x3), type(x4)) # 결과 : <class 'str'> <class 'str'> <class 'str'> <class 'str'> print(x1, x2, x3, x4) # 결과 : foo bar baz qux # t = ('foo', 'bar', 'baz', 'qux')와 같이 변수에 팩킹되어있던 데이터들을 풀어서 # 다른 변수들(x1, x2, x3, x4)에 하나씩 할당하는 것을 언팩킹이라고 한다. # 단, 변수에 할당되는 데이터의 순서는 튜플의 데이터 순서와 동일하다. t2 = 1, 2, 3 # 팩킹 # t2 = (1, 2, 3)의 형태로도 튜플을 선언할 수 있다. t3 = 4, # 팩킹 # t3 = (4,)의 형태로도 튜플을 선언할 수 있다. x1, x2, x3 = t2 # 언팩킹 # (x1, x2, x3) = t2의 형태로도 언팩킹이 가능하다. x4, x5, x6 = 4, 5, 6 # 언팩킹 # (x4, x5, x6) = 4, 5, 6의 형태로도 언팩킹이 가능하다. print(t2) # 결과 : (1, 2, 3) print(t3) # 결과 : (4,) print(x1, x2, x3) # 결과 : 1 2 3 print(x4, x5, x6) # 결과 : 4 5 6
'Python' 카테고리의 다른 글
Python - 기초 자료형(집합) (0) | 2021.10.13 |
---|---|
Python - 기초 자료형(딕셔너리) (0) | 2021.10.13 |
Python - 기초 자료형(리스트) (0) | 2021.10.13 |
Python - 기초 자료형(문자형) (0) | 2021.10.13 |
Python - 기초 자료형(숫자형) (0) | 2021.10.11 |
댓글