728x90
반응형
1. 리스트
리스트 컴프리헨션
- 2차원 리스트를 초기화할 때 효과적으로 사용
- 특히 N X M 크기의 2차원 리스트를 한 번에 초기화 해야 할 때 유용
- Good : array = [[0] * m for _ in range(n)]
- 아래 bad 코드 : 전체 리스트 안에 포함된 각 리스트가 모두 같은 객체로 인식
- bad : array = [[0]*m] * n
리스트 관련 기타 메서드

2. 튜플
- 리스트와 유사하지만 다음과 같은 문법적 차이가 있음
- 튜플은 한 번 선언된 값을 변경할 수 없음
- 리스트는 대괄호 []를 이용하지만, 튜플은 소괄호 ()를 이용
- 튜플은 리스트에 비해 상대적으로 공간 효율적
튜플을 사용하면 좋은 경우
- 서로 다른 성질의 데이터를 묶어서 관리해야 할 때
- 최단 경로 알고리즘에서는 (비용, 노트 번호)의 형태로 튜플 자료형을 주로 사용합니다.
- 데이터 나열을 해싱(Hashing)의 키 값으로 사용해야 할 때
- 튜플은 변경이 불가능하므로 리스트와 다르게 키 값으로 사용될 수 있음
- 리스트보다 메모리를 효율적으로 사용해야 할 때
3. 딕셔너리
- 키(Key)와 값(Value)의 쌍을 데이터로 가지는 자료형
- 리스트나 튜플이 값을 순차적으로 저장하는 것과 대비
- 변경 불가능한(Immutable) 자료형을 키로 사용할 수 있음
- Hashin Table을 이용하므로 데이터 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있음
- Key 데이터만 뽑아서 리스트 만들 때 : keys() 함수
- Value 데이터만 뽑아서 리스트 만들 때 : values() 함수
4. 집합
- 중복 허용하지 않음(중복 제거에 유용)
- 순서가 없음
- 방법 1 : 리스트 혹은 문자열을 이용해서 초기화할 수 있음 (이때 set()함수 이용)
- data = set([1, 1, 2, 3, 4, 4, 5])
- 방법 2 : 중괄호 {} 안에 각 원소를 콤마를 기준으로 구분하여 삽입하여 초기화
- data = { 1, 1, 2, 3, 4, 4, 5 }
- 연산
- 합집합(\), 교집합(&), 차집합(-) 연산
- 새로운 원소 추가 - add(), 새로운 원소 여러개 추가 - update(), 특정한 값을 갖는 원소 삭제 - remove()
- 데이터 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있음
자료형 특징
- 리스트나 튜플은 순서가 있어 인덱싱 가능
- 딕셔너리와 집합은 순서가 없어 인덱싱 불가
728x90
반응형
'Algorithm' 카테고리의 다른 글
| 구현 알고리즘 (Implementation Algorithm) (3) | 2024.04.03 |
|---|---|
| 그리디 알고리즘 (Greedy Algorithm) (2) | 2024.04.01 |
| 실전에서 유용한 표준 라이브러리 (0) | 2024.04.01 |
| 파이썬 문법 - 입출력 (0) | 2024.04.01 |
| 알고리즘 성능 평가 (0) | 2024.04.01 |