딕셔너리(Dictionary) / 집합(Set)
30 Aug 2021 -
2 minute read
딕셔너리(Dictionary)
-
키를 이용하여 값을 저장하는 자료형
-
정수형 인덱스가 아닌 키로 값을 저장 > 저장된 자료의 순서 의미 X
-
중괄호 { }로 정의
-
사전 자료형의 특징
-
키와 값으로 자료 저장
-
사전 자료형의 키 값에는 변경 불가능한 객체(튜플 포함) (> list와 같이 변할 수 있는 것은 키가 될 수 없음)
-
key의 자료형에는 제한이 없지만 일반적으로 문자열이 온다
d = { 1 : 1, 'a' : [1, 2], (1, 2) : "a" } print(d) ### 출력 ### {1: 1, 'a': [1, 2], (1, 2): 'a'}
-
-
값의 추가, 수정이 매우 용이
-
기존에 있는 키에 새로운 값 선언 > 새로운 값으로 변경
-
기존에 없는 키 or 빈 딕셔너리 > 새로운 값 추가
d = { 'a' : 1, 'b' : 2 } d['a'] = 2 d['c'] = 5 print(d) ### 출력 ### {'a': 2, 'b': 2, 'c': 5}
-
-
함수 활용 가능 : Keys(key 값 모두 반환), Values(value 값 모두 반환), Items
d = { 'a': 1, 'b': 2, 'c': 3 } print(d.keys()) print(d.values()) print(d.items()) ### 출력 ### dict_keys(['a', 'b', 'c']) ### dict_values([1, 2, 3]) ###dict_items([('a', 1), ('b', 2), ('c', 3)])
-
집합(Set)
-
데이터를 순서와 상관없이 모아놓은 자료형 (중복과 순서가 없는 자료형)
-
순서 X > 인덱싱, 슬라이싱 불가능
-
중괄호 { }로 정의
-
set 키워드 사용하여 정의 > set() 괄호 안에 리스트 / 문자열 입력 가능
s = {1, 2, 3} s = set([1, 2, 3]) s = set('Hello')
-
집합 자료형의 특징
-
교집합, 합집합, 차집합 연산 지원
s1 = set([1, 2, 3, 4]) s2 = set([3, 4, 5, 6]) #교집합 print(s1&s2) #합집합 print(s1|s2) print(s1.union(s2)) #차집합 print(s1-s2) print(s1.difference(s2)) ### 출력 ### {3, 4} ### {1, 2, 3, 4, 5, 6} ### {1, 2, 3, 4, 5, 6} ### {1, 2} ### {1, 2}
-
추가 : add() / update() 함수
-
add() : 하나의 값 추가
-
update() : 여러개의 값 추가
s = {1, 2, 3, 4} s.add(5) s.update([6]) s.update([7, 8]) print(s) ### 출력 ### {1, 2, 3, 4, 5, 6, 7, 8}
-
-
삭제 : remove()
s.remove(1) print(s) ### 출력 ### {2, 3, 4, 5, 6, 7, 8}
-
전체 제고 : clear()
-
-
Quiz) 집합 자료형을 이용해 리스트의 중복 값 제거하기
l = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5] print(l) s = set(l) print(s) l = list(s) print(l) ### 출력 ### [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5] ### {1, 2, 3, 4, 5} ### [1, 2, 3, 4, 5]