IT Cookie

[Python 문법] 사전 & 집합 자료형 본문

SW/Python

[Python 문법] 사전 & 집합 자료형

ahhyeon 2023. 3. 7. 01:22

4. 사전 & 집합 자료형

4-1. 사전 자료형

  • 키(key)와 값(Value)의 쌍을 데이터로 가지는 자료형
    • 리스트나 튜플이 값을 순차적으로 저장하는 것과 대비됨
  • 키와 값의 쌍을 데이터로 가지고, 원하는 "변경 불가능한 자료형"을 키로 사용
  • 파이썬의 사전자료형은 해시 테이블(Hash Table)을 이용 => 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리가능
color = dict()
color['초록색'] = 'Green'
color['검정색'] = 'Black'
color['파랑색'] = 'Blue'

print(color)

//  {'초록색': 'Green', '검정색': 'Black', '파랑색': 'Blue'}

if '초록색' in color:
  print("'초록색'을 키로 가지는 데이터가 존재합니다. ")
  
// '초록색'을 키로 가지는 데이터가 존재합니다.

[사전 자료형 관련 메서드]

  • 사전 자료형에서는 키와 값을 별도로 뽑아내기 위한 메서드를 지원함
    • key 데이터만 뽑아서 리스트로 이용할 때는 keys() 함수 사용
    • value 데이터만을 뽑아서 리스트로 이용할 때는 values() 함수 사용
# 사전 자료형 관련 함수_연습1

color = dict()
color['초록색'] = 'Green'
color['검정색'] = 'Black'
color['파랑색'] = 'Blue'

# key 데이터만 담은 리스트
key_list = color.keys()

# value 데이터만 담은 리스트
value_list = color.values()

print(key_list)    // dict_keys(['초록색', '검정색', '파랑색'])
print(value_list)  // dict_values(['Green', 'Black', 'Blue'])

# 각 key에 따른 값을 하나씩 출력해보기
for key in key_list:
  print(color[key])
  
// Green
// Black
// Blue
# 사전 자료형 관련 함수_연습2

a = dict()
a['국어'] = 85
a['수학'] = 90
a['영어'] = 95

print(a)  // {'국어': 85, '수학': 90, '영어': 95}

b = {
     '국어' : 85,
     '수학' : 90,
     '영어' : 95
}

print(b) 
print(b['영어'])     // 95

key_list = list(b.keys())
print(key_list)    // ['국어', '수학', '영어']

4-2. 집합 자료형

  • 특징 : 중복을 허용하지 않고 순서가 없음
  • 리스트 혹은 문자열을 이용해서 초기화 가능
    • set() 함수 사용
  • 혹은 중괄호({})안에 각 원소를 콤마(,)를 기준으로 구분하여 삽입 => 초기화 가능
  • 데이터 조회 및 수정할 경우, O(1)의 시간에 처리
# 초기화 방법1
a = set([1,1,1,2,3,4,4,4,5])
print(a)

// {1, 2, 3, 4, 5}

# 초기화 방법2
a = {1,3,3,6,6,9}
print(a)

// {1, 3, 6, 9}

[집합 자료형의 연산]

  • 기본적인 집합 연산 : 합집합, 교집합, 차집합 연산 등
    • 합집합 : 집합 A에 속하거나 B에 속하는 원소로 이루어진 집합(A ∪ B)
    • 교집합 : 집합 A에도 속하고 B에도 속하는 원소로 이루어진 집합(A ∩ B)
    • 차집합 : 집합 A의 원소 중에서 B에 속하지 않는 원소들로 이루어진 집합(A - B)
a = set([0,2,3,4,6,8,15])
b = set([3,6,9,12,15,18])

# 합집합
print(a | b)     // {0, 2, 3, 4, 6, 8, 9, 12, 15, 18}

# 교집합
print(a & b)     // {3, 6, 15}

# 차집합
print(a - b)     // {0, 8, 2, 4}
# 집합 자료형 관련 함수_연습1

a = set([1,2,3,4,5])
print(a)    // {1, 2, 3, 4, 5}

# 새로운 원소 추가
a.add(6)
print(a)    // {1, 2, 3, 4, 5, 6}

# 새로운 원소 N개 추가
a.update([7,8,9,10])
print(a)    // {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

# 특정한 값을 갖는 원소 제거
a.remove(1)
print(a)    //{2, 3, 4, 5, 6, 7, 8, 9, 10}

'SW > Python' 카테고리의 다른 글

[Python 문법] 조건문  (0) 2023.03.07
[Python 문법] 기본 입출력  (0) 2023.03.07
[Python 문법] 문자열 & 튜플 자료형  (0) 2023.03.07
[Python 문법] 리스트 자료형  (0) 2023.03.07
[Python 문법] 수 자료형  (0) 2023.03.07
Comments