순서열: 여러 개의 데이터를 순차적으로 나열해놓은 자료구조
List
: 순차적 데이터의 저장을 위해 사용되는 자료구조 / 순서 O, 수정 O
a = [1, 2, 3, 4, 5]
# 또는
a = list((1, 2, 3, 4, 5))
[리스트 내 원소 접근]
: 데이터의 위치 번호를 사용하여 리스트 내 원소 데이터로 접근하는 방법
a = [1, 2, 3, 4]
a[0] # 1
🚨 음수 인덱스?
: 음수 인덱스는 List의 길이에서 뺀 값으로 접근한다.
a = [1, 2, 3, 4]
a[-1] # 4
# a[-1] == a[len(a)-1] == a[4-1] = a[3]
❓슬라이싱
: List의 범위 내 모든 데이터를 접근
# 기본 형태
list[start:end:inteval] # -> (start <= x < end)
# 사용 방법
a = [1, 2, 3, 4, 5]
a[0:2] # [1, 2]
a[1:] # [2, 3, 4, 5]
a[:3] # [1, 2, 3]
a[-1:] # a[5-1] ~ 끝까지 -> a[4] ~ a[4] -> [5]
a[:-1] # 처음부터 ~< a[5-1] -> a[0] ~< a[4] -> [1, 2, 3, 4]
a[:3:2] # 처음부터 ~< a[3]까지 2씩 증가 -> a[0], a[2] -> [1, 3]
a[:3:3] # 처음부터 ~< a[3]까지 3씩 증가 -> a[0], a[3]인데 a[3] 미만까지라서 -> a[0] -> [1]
a[::-1] # 처음부터 끝까지 -1씩 증가 -> 즉, 거꾸로 진행 -> a[4], a[3], a[2], a[1], a[0] -> [5, 4, 3, 2, 1]
[리스트 내장 메소드]
1. append(x)
- 리스트의 끝에 항목 x를 추가한다.
- 사용 예시: list.append(3)
2. extend(iterable)
- 리스트에 다른 iterable(리스트, 튜플 등)을 이어 붙인다.
- 사용 예시: list.extend([1, 2, 3])
3. insert(i, x)
- 인덱스 i에 항목 x를 삽입한다. 기존의 요소들은 오른쪽으로 밀린다.
- 사용 예시: list.insert(1, 'hello')
4. remove(x)
- 리스트에서 첫 번째로 등장하는 항목 x를 제거한다. 해당 항목이 없으면 에러가 발생한다.
- 사용 예시: list.remove(2)
5. pop(i)
- 인덱스 i에 위치한 항목을 제거하고 반환한다. i를 지정하지 않으면 마지막 항목을 제거하고 반환한다.
- 사용 예시: list.pop(0) (첫 번째 항목 제거)
6. clear()
- 리스트의 모든 항목을 제거한다.
- 사용 예시: list.clear()
7. index(x, start, end)
- 리스트에서 항목 x의 첫 번째 위치를 반환한다. start와 end 인덱스를 지정하면 해당 범위 내에서 검색한다.
- 사용 예시: list.index(3)
8. count(x)
- 리스트에서 항목 x가 몇 번 등장하는지 반환한다.
- 사용 예시: list.count(2)
9. sort(key=None, reverse=False)
- 리스트를 정렬한다. key를 통해 정렬 기준을 지정할 수 있으며, reverse=True로 설정하면 내림차순으로 정렬한다.
- 사용 예시: list.sort()
10. reverse()
- 리스트의 순서를 뒤집는다.
- 사용 예시: list.reverse()
11. copy()
- 리스트의 얕은 복사본을 반환한다.
- 사용 예시: new_list = list.copy()
Tuple
: 순차적 데이터의 저장을 위해 사용되는 자료구조 / 순서 O, 수정 X
a = (1, 2, 3, 4, 5)
리스트와 마찬가지로 인덱싱, 슬라이싱 모두 가능하다!
List vs Tuple
List는 수정 가능, Tuple은 수정 불가능
메모리 할당
- 요소의 개수나 크기가 작은 경우, list가 메모를 적세 소요하지만, 요소의 개수가 커지면 list가 메모리를 더 많이 사용한다.
- 보통의 경우 tuple이 메모리를 더 적게 사용한다.
'2학년 2학기 > 데이터 사이언스 입문' 카테고리의 다른 글
Numpy - ndarray의 속성 (0) | 2024.09.26 |
---|---|
Numpy - random (0) | 2024.09.26 |
Numpy - 배열의 생성 (0) | 2024.09.26 |
유용한 파이썬 함수들 - len(), map(), filter(), zip(), reduce(), enumerate() (0) | 2024.09.19 |
컬렉션 - Dict, Set (0) | 2024.09.19 |