파이썬의 기본 내장 시퀀스 타입에는 문자열, 튜플, 리스트, 바이트, 바이트 배열이 있다
이번 글에서는 튜플, 리스트, 바이트, 바이트 배열에 대해 정리할 것이다.
튜플
- 튜플은 쉼표로 구분된 값으로 이루어진다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18t1 = 1, 2
print(t1)
Out : (1, 2)
t1[0] = 5
Out : # 튜플은 불변 객체이다.
Traceback (most recent call last)
...
TypeError: 'tuple' object does not support item assignment
# 값이 1개인 튜플을 만드려면, 쉼표를 꼭 붙여줘야 한다.
t2 = (1)
print(type(t2))
Out : <class 'int'>
t2 = (1,) # or t2 = 1,
print(type(t2))
Out : <class 'tuple'>
튜플 매서드
count(), index()
- A.count(x)
- 튜플 A에 담긴 x 항목의 개수를 반환
- A.index(x)
- 튜플 A에 있는 첫번째 x 항목의 인덱스를 반환한다.
튜플 언패킹
파이썬에서 모든 이터러블한 객체는 시퀀스 언패킹 연산자 (*) 로 언패킹 할 수 있다.
1 | x, *y = (1,2,3,4) |
리스트
- 파이썬의 리스트(list) 객체는, 배열과 유사한 구조이다.
- 리스트는 크기를 동적으로 조정할 수 있고, 가변 타입이다.
리스트 메서드
append()
- A.append(x)는 리스트 A 끝에 x 항목을 추가한다.
1 | A = [1, 2, 3] |
extend()
- A.extend(iterable)은 리스트 A 끝에 이터러블한 객체의 모든 항목을 추가한다.
1 | A = [1, 2, 3] |
insert()
- A.insert(i, x)는 리스트 A의 i번째 인덱스에 x 항목을 추가한다
1 | A = [1, 2, 3] |
insert() 메서트의 시간 복잡도는 O(n)이다. 리스트의 i 인덱스에 새로운 값을 넣는다면, i 인덱스 뒤의 값은 뒤로 한 칸씩 이동시켜야 하기 때문에 O(n)의 시간복잡도를 가진다.
remove(), pop()
- A.remove(x)는 리스트 A에서 x값을 가진 항목을 삭제한다. x가 존재하지 않으면 ValueError를 일으키고, x가 여러개 존재하면 맨 앞쪽의 원소를 삭제한다
- A.pop(i) 는 리스트 A의 i번째 인덱스 항목을 제거하고, 그 값을 반환한다. i를 지정해주지 않으면 리스트 맨 뒤의 값을 제거하고 반환한다.
del
- 인덱스를 사용하여 특정한 항목을 삭제한다.
1 | A = [1, 2, 3] |
변수를 삭제하고 그 변수가 가리키던 값을 어느 변수도 참조하지 않는다면 파이썬 가비지 컬렉터가 그 데이터를 수집하여 처리해 준다.
index(), count()
A.index(x)는 리스트 A에서 x 항목의 인덱스 값을 반환한다. x값이 없다면 ValueError를 반환한다.
A.count(x)는 리스트 A에서 x 항목의 갯수를 반환한다.
revers()
- A.reverse() 메서드는 리스트 A의 항목들을 반전시킨다.
1 | A = [1, 2, 3] |
리스트 컴프리헨션
- 파이썬에서 컴프리헨션은 반복되거나 특정 조건을 만족하는 객체를 쉽게 만들어내기 위한 방법이다.
- 리스트 뿐만 아니라 셋, 딕셔너리도 컴프리헨션을 사용할 수 있다
컴프리헨션 형식
- [ 항목 for 항목 in iterable]
- [ 표현식 for 항목 in iterable]
- [ 항목 for 항목 in iterable if 조건]
1 | A = [i for i in range(1, 10)] |
컴프리헨션을 이용해 리스트를 만든다면, 짧은 코드로 값이 들어있는 리스트를 만들 수 있다. 코드가 짧으니 좋아 보이지만, 가독성을 위해서는 여러 줄의 반복문과 조건문으로 구현하는게 나을 수도 있다.
바이트와 바이트 배열
- 바이트(bytes)와 바이트 배열(bytearray)는 파이썬에서 바이트를 처리하는데 사용할 수 있는 자료형이다
- bytes는 불변 타입으로 문자열 타입과 유사하고, bytearray는 가변 타입으로 리스트 타입과 유사하다.
1 | A = [1, 2, 3] |
다음 포스트에서는 셋(set)과 딕셔너리같은 컬렉션 자료구조에 대해 정리할 것이다.