📖 Python

파이썬 자료형 - 사전/집합 자료형

date
Jun 30, 2023
slug
python-data-type-dic-set
author
status
Public
tags
Python
summary
사전(딕셔너리)/집합 자료형을 알아보자
type
Post
thumbnail
category
📖 Python
updatedAt
Jun 30, 2023 11:07 AM

사전(딕셔너리) 자료형

  • 키(key)와 값(value)의 쌍을 데이터로 가지는 자료형
  • 변경 불가능한 자료형키(key)로 사용할 수 있다.
  • 파이썬의 사전 자료형은 해시 테이블(Hash Table)을 이용
    • → 데이터의 조회 및 수정에 있어 O(1)의 시간에 처리 가능
data = dict() # key = '사과', value = 'Apple' data['사과'] = 'Apple' data['바나나'] = 'Banana' print(data) # 실행 결과 : {'사과': 'Apple', '바나나': 'Banana'} # 특정한 키 존재하는지 검사 if '사과' in data: print("'사과'를 키로 가지는 데이터가 존재합니다.") # 실행 결과 : '사과'를 키로 가지는 데이터가 존재합니다.
 

사전 자료형 관련 메서드

  • 키 데이터만 뽑아서 리스트로 이용할 때 keys() 함수 이용
  • 값 데이터만 뽑아서 리스트로 이용할 때 values() 함수 이용
data = dict() data['사과'] = 'Apple' data['바나나'] = 'Banana' # 키 데이터만 담은 리스트 key_list = data.keys() # 값 데이터만 담은 리스트 value_list = data.values() print(key_list) # 실행 결과 : dict_keys(['사과', '바나나']) print(value_list) # 실행 결과 : dict_values(['Apple', 'Banana'])
# 각 키에 따른 값 출력 for key in key_list: print(data[key]) # 실행 결과 # Apple # Banana
 

집합 자료형

  • 중복을 허용하지 않는다!
  • 순서 없다!
  • 집합은 리스트나 문자열을 이용해 초기화할 수 있다.
    • set() 함수 이용
  • 중괄호 {} 안에 각 원소를 콤마 , 를 기준으로 구분하여 삽입하여 초기화 가능
  • 데이터의 조회 및 수정에 있어 O(1)의 시간에 처리 가능
# set() 함수 이용하여 집합 자료형 초기화 data = set([1, 1, 2, 3, 4, 4, 5]) print(data) # 실행 결과 : {1, 2, 3, 4, 5} # 집합 자료형은 중복을 허용하지 않는다! # 중괄호와 콤마 이용하여 집합 자료형 초기화 data = {1, 1, 2, 3, 4, 4, 5} print(data) # 실행 결과 : {1, 2, 3, 4, 5} # 집합 자료형은 중복을 허용하지 않는다!
 

집합 자료형의 연산

  • 기본적인 연산 → 합집합, 교집합, 차집합 연산 등이 있다.
    • 합집합(A ∪ B) : 집합 A에 속하거나 B에 속하는 원소로 이루어진 집합
    • 교집합(A ∩ B) : 집합 A에도 속하고 B에도 속하는 원소로 이루어진 집합
    • 차집합(A - B) : 집합 A의 원소 중에서 B에 속하지 않는 원소들로 이루어진 집합
a = set([1, 2, 3, 4, 5]) b = set([3, 4, 5, 6, 7]) # 합집합 print(a | b) # 실행 결과 : {1, 2, 3, 4, 5, 6, 7} # 교집합 print(a & b) # 실행 결과 : {3, 4, 5} # 차집합 print(a - b) # 실행 결과 : {1, 2}

집합 자료형 관련 함수

data = set([1, 2, 3]) print(data) # 실행 결과 : {1, 2, 3} # 새로운 원소 추가 data.add(4) print(data) # 실행 결과 : {1, 2, 3, 4} # 새로운 원소 여러 개 추가 data.update([5, 6]) print(data) # 실행 결과 : {1, 2, 3, 4, 5, 6} # 특정 값 갖는 원소 삭제 data.remove(3) print(data) # 실행 결과 : {1, 2, 4, 5, 6}
 

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

  • 리스트나 튜플은 순서가 있음 → 인덱싱을 통해 값을 얻을 수 있다.
  • 사전 자료형과 집합 자료형은 순서가 없음 → 인덱싱을 통해 값을 얻을 수 없다.
    • 사전의 키 or 집합의 원소를 이용해 O(1)의 시간 복잡도로 조회한다.
 
 

이 글은 유튜브 “동빈나” 채널의 “(이코테 2021 강의 몰아보기) 1. 코딩 테스트 출제 경향 분석 및 파이썬 문법 부수기” 영상을 보고 작성하였습니다.