본문 바로가기
Programming/Python

[Python] 리스트(list) vs 튜플(tuple)!

by a voyager 2020. 11. 5.
728x90
반응형

파이썬의 리스트와 튜플의 차이! 

 

코딩을 하다 보면 배열을 다루는 일이 많다. 배열은 비슷한 데이터를 하나의 집합으로 묶어 놓은 자료구조이다. 

 

아마 대부분의 사람들이 파이썬에서 가장 먼저 접하게 되는 배열은 리스트(list) 와 튜플(tuple)일 것이다. 얼핏 보기에는 이 둘은 구조나 사용하는 방법에서 크게 다를 것이 없어 보인다.

 

하지만 뚜렷한 차이가 있는데, 그것은 바로 리스트는 그 배열 원소의 값을 바꿀 수 있을 뿐만 아니라 새로운 원소를 추가하거나 제거하면서 배열의 길이를 바꿀 수 있다. 

 

반면, 튜플은 한번 배열의 길이와 원소들의 값이 정해지면 나중에 바꿀 수 없다. 

 

즉, 리스트는 변경 가능 (mutable) 하고, 튜플은 변경 할 수 없다 (immutable).

 

코딩으로 확인해 보자! 

 

먼저 리스트를 보면, 아래 첫 번째 박스에서처럼 숫자로만 이루어진 리스트를 만들 수 있고, 두 번째 박스에서처럼 숫자와 문자가 같이 있는 구조도 지원한다. 

위의 두번째 박스에서 리스트의 값과 자료형을 출력해 본다. int는 정수이고 str은 문자열이다. 

 

리스트(list)에 값 추가 

그리고 append()라는 매소드를 이용해 리스트에 새 원소를 추가해 본다. 그 결과 리스트의 크기가 커진 것을 확인 할 수 있다. 즉, 리스트가 새로운 원소들을 추가함으로써 변경되었다. 

 

 

튜플(tuple)에 값 추가 

자 그럼 튜플로 똑같이 시도해보자. 

우선, 튜플도 리스트와 같이 문자열과 숫자로 이루어진 구조를 만들 수 있다. 하지만 append()로 새로운 원소를 추가하려니 에러가 난다. 

 

이것이 바로 파이썬의 리스트와 튜플의 차이이다. 

 

그럼에도 튜플도 리스트처럼 변경 할 수 있는데, 그것이 true mutation인지 아닌지 다음 포스팅에서 보도록 하겠다. 

728x90
반응형

댓글