안녕하세요 독학코딩입니다. 오늘은 파이썬의 튜플에 대해서 배워보겠습니다. 튜플은 immutable, 불변 즉, 데이터 자체를 완전하게 유지해야 될 때 사용하는 테이터 타입니다. 원소의 배열로 이루어졌다는 점에서 리스트와 매우 흡사하지만 immutable이기 때문에 원소의 순서도 원소 그 자체도 수정이 불가능합니다.
Nonetype = 타입이 없는 자료입니다.
bool = 참, 거짓을 의미합니다. ex) true, false
int = 숫자형을 의미합니다. ex) 1, 2, 3
float = 소수점이 있는 숫자를 의미합니다. ex) 2.334, 5.125
str = 텍스트를 의미합니다. ex) "안녕", "사과"
list = 리스트라고 합니다. []로 표현됩니다.
ex) ["안녕", "사과"], [1, 2, 3, 4], [2.33, 4.21, 5.32]
tuple = 튜플이라고 합니다. ()로 표현됩니다. 한번 구성하면 구성원을 변경할 수 없습니다.
ex) ("안녕", "사과"), (1, 2, 3, 4), (2.33, 4.21, 5.32)
dict = 딕트, 딕셔너리라고 합니다. {}로 표현됩니다. key와 value로 구성 되어있어 원하는 자료를 찾기 편합니다.
ex) {"이름"="홍길동", "나이"="43", "도시"="서울"}
여기서 이름, 나이, 도시를 key, 홍길동, 43, 서울은 value 입니다.
- Python 튜플 연산자 tuple[int]
- Python 튜플 연산자 tuple[int]=
- Python 튜플 연산자 del tuple[int]
- Python 튜플 연산자 tuple[int:int]
- Python 튜플 연산자 tuple + tuple
- Python 튜플 연산자 tuple * int
- Python 튜플 연산자 len(tuple)
- Python 튜플 연산자 list(tuple), tuple(list)
Python 튜플 연산자 종류
tuple_a = (1, 2, 3) | |
tuple_a[0] | 1 |
tuple_a[0] = 10 | immutable이라 불가능 |
del tuple_a[2] | immutable이라 불가능 |
tuple_a[1:4] | (2, 3) |
tuple_a + tuple_a | (1, 2, 3, 1, 2, 3) |
tuple_a*3 | (1, 2, 3, 1, 2, 3, 1, 2, 3) |
len(tuple_a) | 3 |
list(tuple_a) | [1, 2, 3] |
Python 튜플 표현방식 (,)
튜플의 표현방식은 리스트와 거의 동일합니다. 묶을 원소들을 ()로 감싸고 각각의 원소를 , 로 구분하면 됩니다. 다만 특이한 점은 ()가 없어도 원소들을 ,로 나열하면 튜플로 인식한다는 점입니다. 그런데 , 가 없이 ()으로 감싼다고 튜플이 되지는 않습니다. 조금 특이하죠?
example_a = (1)
print(example_a)
print(type(example_a))
tupel_a = (1,)
print(tupel_a)
print(type(tupel_a))
tupel_a = 1, 2, 3,
print(tupel_a)
print(type(tupel_a))
example_b = [1]
print(example_b)
print(type(example_b))
Python 튜플 연산자 tuple[int]
튜플도 리스트와 같은 배열이기 때문에 index로 element를 호출할 수 있습니다.
tuple_a = (1, 2, 3)
print(tuple_a[0])
Python 튜플 연산자 tuple[int]=
다만! 배열이라서 호출은 가능하지만 수정은 불가능합니다. 왜 불가능하죠? immutable이라서 그렇습니다.
tuple_a = (1, 2, 3)
tuple_a[0] = 4
Python 튜플 연산자 del tuple[int]
수정이 안되니깐 당연히 삭제도 불가능합니다.
tuple_a = (1, 2, 3)
delf tuple_a[0]
Python 튜플 연산자 tuple[int:int]
수정과 삭제는 안되었지만, index로 호출이 가능하지 리스트처럼 여러 element를 범위로 호출할 수 있습니다.
tuple_a = (1, 2, 3, 4, 5, 6)
print(tuple_a[2:5])
Python 튜플 연산자 tuple + tuple
수정, 삭제가 불가능한데 그럼 리스트처럼 새로운 원소를 추가는 어떻게 할까요? 리스트처럼 한 개 한 개를 append 할 수는 없습니다. 조금 돌아가는 방법이 있는데요.
tuple_a = (1, 2, 3)
print(tuple_a + tuple_a)
print(tuple_a + (4,))
튜플과 튜플의 더하기 가능하니, 1개의 원소만 더하고 싶다면 1개의 원소를 갖고 있는 튜플을 더해주면 됩니다.
Python 튜플 연산자 tuple * int
숫자형 데이터 타입의 연산자에서 보셨다면 곱하기가 불가능한 거 아니냐 라고 생각하시겠지만, tuple과 tuple 간의 곱하기는 불가능합니다. 하지만 리스트처럼 튜플과 인트의 곱하기는 가능합니다.
tuple_a = (1, 2, 3)
print(tuple_a * 3)
print(tuple_a * tuple_a)
Python 튜플 연산자 len(tuple)
튜플의 총길이를 구하는 방법은 리스트와 동일합니다.
tuple_a = (1, 2, 3)
print(len(tuple_a))
Python 튜플 연산자 list(tuple), tuple(list)
여기까지 쭉 보셨다면 튜플과 리스트가 거의 동일하다는 느낌을 받으실 수 있으실 겁니다. 그래서 튜플과 리스트는 서로 상호변경이 가능합니다.
tuple_a = (1, 2, 3)
print(list(tuple_a))
list_a = [1, 2, 3, 4, 5, 6]
print(tuple(list_a))
그럼 이렇게 상호 교환이 가능하다면 튜플도 제한 없이 리스트처럼 수정, 삭제가 가능하다는 거 이해가 되실까요? 불편한 과정일 수 있지만, 튜플의 특정 index의 element를 수정하고 싶다면, 튜플을 리스트로 교환하고 수정하고 다시 튜플로 바꾸면 되지 않을까요? (실제로는 이렇게 하면 안 되는 경우도 있긴 합니다.)
오늘은 파이썬 튜플의 연산자에 대해서 배워보았습니다. 이제 파이썬 기초가 1개 남았습니다. 딕트입니다. 제 나름으로는 가장 좋아하고 편하고 자주 쓰는 기능입니다. key와 value가 있기 때문에 index로 element를 구하지 않고 key만 알고 있다면 원하는 value를 딱딱 특정해서 호출이 가능하니깐요. 다음 포스트에서 뵙겠습니다.
'Python > Python 초급' 카테고리의 다른 글
Python 파이썬 SET, set(), 세트 데이터 타입 (0) | 2022.03.14 |
---|---|
Python 파이썬 Dictonary, dict(), 딕셔너리 데이터 타입 (0) | 2021.11.22 |
Python 파이썬 List, list(), 리스트 데이터 타입 (0) | 2021.11.19 |
Python 파이썬 String, str(), 문자열 데이터 타입 (0) | 2021.11.18 |
Python 파이썬 Integer, int(), 숫자형 데이터 타입 (0) | 2021.11.17 |
댓글