1 minute read

리스트, 딕셔너리

  • 리스트 순서대로 저장하는 시퀸스이자 변경 가능한 목록 내부는 동적 배열로 구현되어 있음 stack, queue 기능 둘 다 제공해서 무엇을 사용해야 할 지 고민하지 않아도 됨
    • 기능 리스트 마지막에 요소 추가/추출, 원하는 인덱스 요소 조회/삭제 가능
    • 활용 방법
      • 선언 list 나 [] 로 선언
      • append 요소 끝에 더할 때 사용
      • insert 요소를 원하는 위치에 더할 때 사용
      • 인덱스
        • 조회 인덱스를 이용해 조회할 때 사용
        • 삭제 del 을 이용해 요소 삭제
      • 슬라이싱 배열을 자를 때 사용 자를 단계 까지 설정 가능
      • 삭제
        • del 원하는 인덱스의 요소 삭제 시 사용
        • remove 원하는 요소 삭제 시 사용
        • pop 마지막 요소 추출 시 사용 pop(0) 은 첫 번째 요소 추출
    • 특징 cPython 에서 list 는 요소에 대한 포인터 목록들인 ** (포인터의 포인터)을 가진 구조체로 선언됨 연결 리스트에 대한 포인터 목록을 배열 형태로 관리하고 있기 때문에 제각기 다양한 타입 동시에 단일 리스트에서 관리 가능하며 강력한 기능 가짐 객체에 대한 참조로 구현했기 때문에 속도를 희생함
  • 딕셔너리 키/값 구조로 이뤄진 딕셔너리 내부적으로 해시 테이블로 구현됨 다양한 타입을 키로 가짐 3.7 이상 부터 입력 순서가 유지됨
    • 활용 방법
      • 선언 { } 라 dict 로 선언
        • 조회 key 값으로 조회 시 사용
        • 삭제 key 값으로 삭제 시 사용
      • items 키, 값 각각 꺼내올 때 사용
    • 모듈
      • defaultdict 존재하지 않는 키 조회 시 에러 메세지 대신 디폴트 값 기준으로 해당 키에 대한 딕셔너리 아이템 생성
      • Counter 아이템에 대한 개수 계산해 딕셔너리로 리턴
      • OrderedDict 입력 순서 유지되는 딕셔너리