파이썬 문법: 사전, 집합 자료형

seon·2024년 1월 5일

Algorithm

목록 보기
6/41
post-thumbnail

출처: 이것이 코딩 테스트다 with Python

사전 자료형

  • 사전 차료형은 키(Key)와 값(Value)의 쌍을 데이터로 가지는 자료형입니다.

    • 앞서 다루었던 리스트나 튜플이 값을 순차적으로 저장하는 것과는 대비됩니다.
  • 사전 자료형은 키와 값의 쌍을 데이터로 가지며, 원하는 '변경 불가능한(Immutable) 자료형'을 키로 사용할 수 있습니다.

  • 파이썬의 사전 자료형은 해시 테이블(Hash Table)을 이용하므로 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있습니다.

  • 한영 사전

  • 다른 프로그래밍 언어에서는 해시 테이블로 불리는 경우가 많습니다.

    사전 자료형을 초기화하는 함수는?

    dict()

  • data['키'] = '값'

    • '사과'라는 키에 'Apple'이라는 값이 맵핑되고
    • '바나나'라는 키에 'Banana'라는 값이 맵핑된다.
  • {} 딕셔너리 객체가 성공적으로 출력된다.

  • 해당 딕셔너리 객체에 특정한 키가 존재하는 지를 검사함

  • 리스트 보다 훨씬 빠르게 조회할 수 있다 (상수 시간)


사전 자료형 관련 메서드

  • 사전 자료형에서는 키와 값을 별도로 뽑아내기 위한 메서드를 지원합니다.
    • 키 데이터만 뽑아서 리스트로 이용할 때는 keys() 함수를 이용합니다.
    • 값 데이터만을 뽑아서 리스트로 이용할 때는 values()함수를 이용합니다.



집합 자료형

  • 집합은 다음과 같은 특징이 있습니다.

    • 중복을 허용하지 않습니다.
    • 순서가 없습니다.
      -> 데이터가 존재하는지, 혹은 존재하지 않는지 그 여부만을 체크할 때 '집합' 자료형을 매우 효과적으로 사용할 수 있다.
  • 집합은 리스트 혹은 문자열을 이용해서 초기화할 수 있습니다.

    • 이때 set() 함수를 이용합니다.
  • 혹은 중괄호{} 안에 단순히 각 원소를 콤마,를 기준으로 구분하여 삽입함으로써 초기화할 수도 있습니다.

  • 데이터의 조회 및 수정에 있어서 O(1)(상수시간)의 시간에 처리할 수 있다는 것이 '사전' 자료형과 동일합니다.


집합 자료형의 연산


집합 자료형 관련 함수

  • add() : 추가적인 원소를 넣고자 할 때
  • update() : 새로운 원소를 여러 개 한꺼번에 넣고자 할 때
  • remove() : 특정한 값을 가지는 원소를 제거하고자 할 때

조회하거나 추가 삭제할 때 모두 상수 시간이 소요된다!


사전 자료형과 집합 자료형의 특징

  • 리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있습니다.
  • 사전 자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없습니다.
    • 사전의 키(Key) 혹은 집합의 원소(Element)를 이용해 O(1)O(1)의 시간 복잡도로 조회합니다.

헷갈리는 자료형

  • [] : 리스트
    (=배열=테이블 / 변경 가능)
  • "", '' : 문자열
    (인덱싱, 슬라이싱 가능 / 변경 불가)
  • () : 튜플
    (인덱싱, 슬라이싱 가능 / 변경 불가)
    (<->리스트) 튜플이 리스트보다 빠름, 서로 다른 성질의 데이터O
  • {} : 사전
    (=딕셔너리 / 키:값 / dict() 로 초기화)
  • 집합
    ( 중복허용x / 순서x / set() 로 초기화 )
profile
🌻

0개의 댓글