공통점
1. 길이를 갖는다
튜플(Tuple)과 리스트(List)는 길이가 있다. 따라서 len 함수를 사용할 수 있다.
a = [1,2,3] ## 리스트
b = (1,2,3) ## 튜플
print('a의 길이 :', len(a))
print('b의 길이 :', len(b))
2. 언패킹이 가능하다
언패킹(Unpacking)이란 여러 변수를 한 번에 할당하는 것을 말한다. 튜플(Tuple)과 리스트(List)는 이러한 언패킹이 가능하다.
a = [1,2,3] ## 리스트
b = (7,8,9) ## 튜플
## 언패킹(Unpacking)
x1, x2, x3 = a
y1, y2, y3 = b
print(x1, x2, x3)
print(y1, y2, y3)
3. index,count 함수를 사용할 수 있다
튜플(Tuple)과 리스트(List)는 객체 내부에 index와 count를 사용할 수 있다.
a = [1,1,3] ## 리스트
b = (7,9,9,9) ## 튜플
## 언패킹(Unpacking)
print(a.index(3)) ## 리스트 a에서 3의 인덱스?
print(a.count(1)) ## 리스트 a에서 1의 등장 횟수
print(b.index(7)) ## 튜플 b에서 7의 인덱스?
print(b.count(9)) ## 튜플 b에서 9의 등장 횟수
차이점
1. 선언 방식이 다르다
리스트는 각 괄호 ' [ ] ' 를 이용하고 두 개 이상의 원소를 갖는다면 콤마로 구분해주어야 한다. 하지만 튜플은 괄호 ' ( ) '를 이용한다. 만약 원소가 한 개인 경우에는 반드시 뒤에 콤마를 붙여주어야 한다.
a = [3] ## 리스트
b = (3,) ## 원소가 하나인 경우 튜플은 반드시 뒤에 콤마를 붙여야한다.
c = [3,4,5] ## 리스트
d = (3,4,5) ## 튜플
print(a)
print(b)
print(c)
print(d)
2. 리스트는 가변이지만 튜플은 불변이다
리스트는 append, insert 같은 함수가 있어서 리스트에 원소를 추가할 수 있으며 sort를 이용하여 내부적으로 정렬도 할 수 있다. 따라서 리스트는 변할 수 있는 가변성을 띄고 있다. 하지만 튜플은 불변이라 튜플을 바꾸는 함수가 없다.
아래 코드를 보면 리스트는 가변성을 갖기 때문에 인덱스를 통한 값의 변경이 가능하다. 하지만 튜플은 불변이라 변경이 안된다.
a = [1,2,3] ## 리스트
a[0] = 4 ## 리스트 a의 첫 번째 원소를 4로 바꾼다.
print(a)
b = (1,2,3) ## 튜플
b[0] = 4 ## 튜플은 불변이라 바꿀 수 없다.
print(b)
3. 튜플이 더 적은 메모리를 차지한다
from sys import getsizeof
a = [1,2,3] ## 리스트
b = (1,2,3) ## 튜플
print(f'리스트 a의 용량 : {getsizeof(a)} 바이트')
print(f'튜플 b의 용량 : {getsizeof(b)} 바이트')
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] 수학 (math) 함수 (0) | 2024.01.26 |
---|---|
[Python] Tuple (튜플) 사용 방법 (0) | 2023.12.20 |
[Python] 데이터 여러개 입력 받기 (Input) (0) | 2023.12.13 |
[Python] 1759 - 암호만들기 (0) | 2023.12.13 |
[Python] 입력값 받기 / input() 함수 (0) | 2023.12.13 |