딕셔너리 자료형
Key, Value를 한쌍으로 갖는 자료형
리스트나 튜플 처럼 순차적으로 해당 요솟값을 구하지 않음
key를 통해 value를 얻음
{Key1 : Value1, Key2 : Value2, Key3 : Value3, ...} 형식으로 딕셔너리를 생성할 수 있음# dictionary 생성 Example
dic = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
Key에는 정수 값 을 넣을수 있음
Value에는 문자열, 리스트 등을 사용할 수 있음
# 딕셔너리 쌍 추가 Example
a = {1 : 'a'}
a[2] = 'b' # 2 : 'b' 쌍 추가
print(a) # {1: 'a', 2: 'b'}
a['name'] = 'pey' # 'name' : 'pey' 쌍 추가
print(a) # {1: 'a', 2: 'b', 'name': 'pey'}
# 딕셔너리 쌍 삭제 Example
a = {1: 'a', 2: 'b', 'name': 'pey'}
del a[1]
print(a) # {2: 'b', 'name': 'pey'}
del함수를 이용해서 딕셔너리에서 쌍을 삭제할 수 있음# key로 value얻기 Example
grade = {'pey': 10, 'julliet': 99}
print(grade['pey']) # 10
print(grade['julliet']) # 99
Key는 고유한 값이므로 중복되는 Key 값을 설정하면 안됨 -> 동일한 Key값이 두개면 1개는 무시됨
Key에는 리스트를 사용할 수 없음, BUT. 튜플은 Key로 사용할 수 있음
# keys함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print(a.keys()) # dict_keys(['name', 'phone', 'birth'])
# values함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print(a.values()) # dict_values(['pey', '0119993323', '1118'])
# items 함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print(a,a.items()) # dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])
딕셔너리의 모든 요소를 삭제하는 함수
실행하고나면 빈 딕셔너리만 남음
# clear 함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print(a.clear()) # None
Key로 Value를 얻을 수 있는 함수
get(x)형식으로 사용 x에 대응되는 value값을 반환해줌
get(x, '디폴트 값')x값이 키값중 없을 경우 정해 둔 디폴트 값을 대신 가져오게할 수 있음
# get 함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print(a.get('name')) # pey
print(a.get('phone')) # 0119993323
# in 함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print('name' in a) # True
print('email' in a) # False
집합 자료형
수학에서 사용하는 집합과 동일
set키워드를 사용해 집합을 생성할 수 있음
# set 생성 Example
s1 = set([1,2,3])
print(s1) # {1,2,3}
s2 = set("Hello")
print(s2) # {'e','H','l','o'}
Set는 중복을 허용하지 않음
순서가 없음 -> 인덱싱을 통해 값을 얻을 수 없음
set의 요소에 인덱싱으로 접근하기 위해서는 리스트나 튜플로 변환 한후 접근할 수 있음
#Example
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
#교집합
print(s1&s2) # {4,5,6}
s1.intersection(s2) # {4,5,6}
#합집합
print(s1 | s2) #{1,2,3,4,5,6,7,8,9}
s1.union(s2) #{1,2,3,4,5,6,7,8,9}
#차집합
print(s1 - s2) # {1,2,3}
s1.difference(s2) # {1,2,3}
print(s2 - s1) # {8,9,7}
s2.difference(s2) # {8,9,7}
교집합은 & 와 intersection함수를 사용해서 구할 수 있음
합집합은 |와 union 함수를 사용해서 구할 수 있음
차집합은 - 와 difference함수를 사용해서 구할 수 있음
s1 = ([1,2,3])
s1.add(4)
print(s1) # 1,2,3,4
s1 = ([1,2,3])
s1.update([4,5,6])
print(s1) # 1,2,3,4,5,6
s1 = ([1,2,3])
s1.remove(2)
print(s1) # 1,3