-
5장_리스트, 딕셔너리알고리즘 2023. 5. 1. 13:37
< 리스트 >
- 순서대로 저장하는 시퀀스이자 변경 가능한 목록
- 입력 순서 유지
- 동적 배열
- 다양한 자료형을 단일 리스트에 관리 가능
a = [1, 2, 3, 4, '안녕', True] a[9]
- 존재하지 않는 인덱스를 조회하여 IndexError 발생
- try 구문으로 예외처리
try: print(a[9]) except IndexError: print("존재하지 않는 인덱스")
- 요소 삭제하기
- 인덱스로 삭제하기 : del
- 값으로 삭제하기 : remove
< 딕셔너리 >
- 해시 테이블로 구현 (다양한 타입을 키로 지원, 입력과 조회 모두 O(1))
b = {'key1':'value1', 'key2':'value2', 'key3':'value3'} b['key4']
- 존재하지 않는 키를 조회하여 KeyError 발생
- try 구문으로 예외처리
try: print(b['key4']) except KeyError: print("존재하지 않는 키")
- 키가 존재하는지 미리 확인 가능
if 'key4' in b: print("존재하는 키") else: print("존재하지 않는 키")
- items() 메소드 이용하여 키와 값 각각 꺼내오기
> 딕셔너리 모듈
- defaultdict : 존재하지 않는 키를 조회할 경우, 에러 메세지 대힌 디폴트 값 기준으로 해당 키에 대한 딕셔너리 아이템 생성
from collections import defaultdict c = defaultdict(int) c['A'] = 5 c['B'] = 4 print(c) c['C'] += 1 print(c)
- Counter : 아이템에 대한 개수를 계산해 딕셔너리로 리턴
- 가장 빈도가 높은 요소 : most_common()
from collections import Counter d = [1, 2, 3, 4, 5, 5, 5, 6, 6] print(Counter(d))
- OrderedDict : 입력 그대로 순서 유지
'알고리즘' 카테고리의 다른 글
11장_해시 테이블 (2) 2023.06.07 10장_데크, 우선순위 큐 (0) 2023.05.31 9장_스택, 큐 (0) 2023.05.31 7장_배열 (0) 2023.05.12 6장_문자열 조작 (0) 2023.05.05