Python Cook Book
안녕하세요 이번 시간에는 Python 딕셔너리, 튜플, 집합에 대해서 알아보겠습니다.
딕셔너리란?
딕셔너리(Dictionary)란 키(Key)와 값(Value) 한 쌍이 하나의 대응 관계를 가지고 있는 자료형 입니다.
간단한 예시 )
Key | Value |
---|
apple | 사과 |
rainbow | 무지개 |
violet | 제비꽃 |
딕셔너리의 특징은 순서가 없고, 키와 값이 쌍으로 이루어져 있습니다.
딕셔너리 사용하기
딕셔너리를 사용할 때는 중괄호( { } )를 이용해 key와 value 모두 사용자가 지정해야 합니다.

딕셔너리명 = {key:value, key:value, ...} 형식으로 작성합니다.

잘 사용되지는 않으나 이렇게 dict()함수를 사용할 수도 있습니다.

딕셔너리명[key] = value 형식으로, 딕셔너리에 새로운 값을 추가할 수도 있습니다.

리스트 또한 하나의 value가 될 수 있습니다.

딕셔너리의 값을 지울 때는 del 키워드를 이용해 제거할 수 있습니다.


딕셔너리에서는 오직 key 값으로만 value를 얻을 수 있습니다.

주의해야할 점
1. key는 value를 찾기 위한 유일한 값이기 때문에 중복으로 사용할 수 없다.
2. key에 리스트를 사용할 수 없다.
3. value에는 어떤 값이든 상관 없이 올 수 있다.
딕셔너리 함수
딕셔너리에서 사용할 수 있는 함수들을 소개해보겠습니다.
dictionary.keys()
딕셔너리의 key만 모아 dict_keys 객체를 반환 해줍니다.


dictionary.values()
딕셔너리의 value만 모아 dict_value 객체를 반환 해줍니다


dictionary.items()
딕셔너리의 key와 value를 튜플로 묶어 dict_items 객체를 반환 해줍니다.
튜플이 무엇이냐면 곧 나옵니다!


dictionary.clear()
딕셔너리의 모든 값을 삭제해줍니다. 빈 딕서너리가 되는 것이죠.


dictionary.get(key)
dictionary[key]와 마찬가지로 해당 key의 value를 반환해줍니다.
key가 존재하지 않으면 None을 반환합니다. 만약 None이 아니라 다른 값을 출력하고 싶다면 dictionary.get(key, 출력하고싶은값) 으로 작성합니다.


key in dictionary
key 값이 딕셔너리에 존재하는지 판별하는 키워드입니다.
key값이 존재하면 True를, 존재하지 않으면 False를 반환합니다.


튜플이란?
튜플(tuple)은 변경 불가능한 순서가 있는 자료형입니다.
튜플은 리스트와 유사하지만, 한번 생성된 튜플은 변경이 불가능합니다.
튜플 사용하기
튜플을 사용할 때는 괄호( ( ) )를 이용합니다.

리스트와 모습이 비슷합니다. 하지만 튜플에서는 리스트와 다른 점을 찾을 수 있습니다.
t2 = (0, ) 처럼 1개의 요소만을 가질 때는 요소 뒤에 콤마(,)를 붙여야 한다는 점과 t4 = 0, 1, 2, 3 처럼 괄호를 생략해도 된다는 점입니다.
튜플에서 요소를 제거하거나 변경할 수 있을까?
앞서 설명했듯 튜플의 요소는 한 번 정하면 지우거나 변경할 수 없습니다.


튜플의 요소를 del 키워드로 지우려 했더니 오류 메시지가 뜨는 것을 확인할 수 있습니다.


튜플의 요소를 변경하려고 했더니 오류 메시지가 뜨는 것을 확인할 수 있습니다.
튜플 다루기
튜플은 요소를 지우거나 변경할 수 없다는 점만 빼면 리스트와 완전히 동일합니다.
인덱싱, 슬라이싱, 연산(더하기, 곱하기) 등 모두 가능합니다.
인덱싱


슬라이싱


연산하기
더하기


곱하기


튜플 길이 구하기
리스트와 마찬가지로 len() 함수를 사용합니다.


집합이란?
집합이란 수학 시간 때 배우는 집합의 특징을 그대로 구현해놓은 자료형입니다.
집합의 특징은 다음과 같습니다.
1. 요소의 순서가 없다.
2. 중복되는 값은 한 개만 저장한다
3. 딕셔너리는 key만 저장한다.
리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만 집합은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없습니다.
만약 집합의 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환한 후 인덱싱해야 합니다.
집합 사용하기
집합을 사용할 때는 다음과 같이 set() 함수를 사용해 만들 수 있습니다.

set()의 괄호 안에 리스트나 문자열을 입력하여 만들 수 있습니다.
비어 있는 집합 자료형은 s = set()으로 만들 수 있습니다.
집합 관련 함수들
집합 관련 함수들에는 intersection(), union(), difference(), add(), update(), remove() 가 있습니다.
각각 교집합, 합집합, 차집합을 구해주는 함수입니다.

intersection()



intersection() 함수를 사용할 수도 있지만 & 기호를 이용하여 교집합을 구할 수도 있습니다.
union()



union() 함수를 사용할 수도 있지만 | 기호를 이용하여 합집합을 구할 수도 있습니다.
difference()



difference() 함수를 사용할 수도 있지만 - 기호를 이용하여 차집합을 구할 수도 있습니다.
add()


집합에 한 개의 요소를 추가할 때는 add를 사용합니다.
update()


집합에 여러개의 요소를 추가할 때는 update를 사용합니다.
remove()


집합에서 특정 요소를 제거하고 싶을 때는 remove를 사용합니다.
마무리
오늘은 Python 딕셔너리와 튜플, 집합에 대해서 알아보았습니다.
다음 시간에는 반복문에 대해서 정리해보도록 하겠습니다.