이전 포스팅에서는 파이썬의 집합 자료형인 List와 Tuple에 대해서 포스팅 했었죠. 이 둘의 경우는 값을 차례대로 나열하기 때문에 인덱싱을 통해서 값을 가져올 수 있었는데, 이번에 포스팅할 Set과 Dictionary도 집합 자료형이지만, List와 Tuple과는 다른 점이 있습니다.
SET은 수학의 집합과 같이 중복을 허용하지 않고, List와 tuple과 다르게 순서가 없습니다. 그렇기 때문에 무언가 정렬된 자료들을 볼때 사용하기 보다는 값의 유무나 중복된 값을 제거하는 용도로 사용하죠 !
SET 자료형 특징
set_a = set()
# '그냥 {}'은 Dictionary를 나타내는 기호임. 혼동하지 않도록 주의 !
# 빈 집합 생성
set_b = {1, 2, 3, 3}
print(set_b)
# {1, 2, 3}
# 중복이 제거됨
# 이것을 활용해서 List Type을 SET Type으로 변경한 뒤 다시 List타입으로 변경하면 편하게 중복제거 가능 !!!
set_c = {1, 2, 5}
print(set_b & set_c)
# {1, 2}
# &은 두 집합의 교집합을 뽑아낼 수 있음.
print(set_b | set_c)
# {1, 2, 3, 5}
# |은 두 집합의 합집합 !!!
print(set_b - set_c)
# {3}
# 뺄셈으로 차집합을 구할수도 있다.
SET 자료형 다루기
List에서 인덱싱으로 값을 저장하듯이, 주어진 값을 '키' 값으로 하여 그 값에 해당되는 다른 값 (value)를 저장할 수 있습니다.
Dictionary 특징
d = {}
# 빈 딕셔너리
# 혹은 dict()으로 가능
d = {'name': '김승재', 'nickname': 'paul'}
# 중괄호로 감싸고, 각 쌍은 key: value 형태로 정의하며, 쉼표로 구분
d = {1: 10, 2: 20}
# key는 불변 자료형, value는 어떤 자료형이든 사용할 수 있음
d = {'info': {'name': '김승재', 'nickname': 'paul'}}
# 다중 딕셔너리
print(d)
# {'info': {'name': '김승재', 'nickname': 'paul'}}
Dictionary 값 조회
d = {'name': '김승재', 'nickname': 'paul'}
print(d['name'])
# '김승재'
d = {'info': {'name': '김승재', 'nickname': 'paul'}}
# 다중 딕셔너리
print(d['info']['name'])
# '김승재'
# 루프를 돌릴때, 다음과 같이 keys()를 통해서 구할수 있다.
for key in d.keys(): # dictionary 내의 key 값들을 하나의 리스트로 정리해서 줌
... # some codes here
Dictionary 값 추가 / 수정 / 삭제
d = {}
d['name'] = '김승재'
d['nickname'] = 'paul'
# 요소 추가
d['nickname'] = 'paul2'
# 요소 수정
del d['nickname']
# 요소 제거
# d= {'name' : '김승재'}