ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.