파이썬의 리스트와 튜플의 차이!
코딩을 하다 보면 배열을 다루는 일이 많다. 배열은 비슷한 데이터를 하나의 집합으로 묶어 놓은 자료구조이다.
아마 대부분의 사람들이 파이썬에서 가장 먼저 접하게 되는 배열은 리스트(list) 와 튜플(tuple)일 것이다. 얼핏 보기에는 이 둘은 구조나 사용하는 방법에서 크게 다를 것이 없어 보인다.
하지만 뚜렷한 차이가 있는데, 그것은 바로 리스트는 그 배열 원소의 값을 바꿀 수 있을 뿐만 아니라 새로운 원소를 추가하거나 제거하면서 배열의 길이를 바꿀 수 있다.
반면, 튜플은 한번 배열의 길이와 원소들의 값이 정해지면 나중에 바꿀 수 없다.
즉, 리스트는 변경 가능 (mutable) 하고, 튜플은 변경 할 수 없다 (immutable).
코딩으로 확인해 보자!
먼저 리스트를 보면, 아래 첫 번째 박스에서처럼 숫자로만 이루어진 리스트를 만들 수 있고, 두 번째 박스에서처럼 숫자와 문자가 같이 있는 구조도 지원한다.
위의 두번째 박스에서 리스트의 값과 자료형을 출력해 본다. int는 정수이고 str은 문자열이다.
리스트(list)에 값 추가
그리고 append()라는 매소드를 이용해 리스트에 새 원소를 추가해 본다. 그 결과 리스트의 크기가 커진 것을 확인 할 수 있다. 즉, 리스트가 새로운 원소들을 추가함으로써 변경되었다.
튜플(tuple)에 값 추가
자 그럼 튜플로 똑같이 시도해보자.
우선, 튜플도 리스트와 같이 문자열과 숫자로 이루어진 구조를 만들 수 있다. 하지만 append()로 새로운 원소를 추가하려니 에러가 난다.
이것이 바로 파이썬의 리스트와 튜플의 차이이다.
그럼에도 튜플도 리스트처럼 변경 할 수 있는데, 그것이 true mutation인지 아닌지 다음 포스팅에서 보도록 하겠다.
'Programming > Python' 카테고리의 다른 글
[Python] bound / unbound method란? (feat. static method) (1) | 2021.04.29 |
---|---|
[Python] How to flatten a matrix (행렬을 1차원 배열로 전환하기) (0) | 2020.11.09 |
[Python] How to initialize dictionary by get method (0) | 2020.11.08 |
[Python] Abstract Classes(추상클래스)의 객체 생성은 가능한가? (1) | 2020.11.06 |
[Python] 튜플 값 변경이나 추가 및 삭제 가능한가? (0) | 2020.11.04 |
댓글