딕셔너리(Dictionary) 말 그대로 사전, 예를 들어 아주 간단한 사전을 만든다고 생각하면 다음과 같이 만들 수 있다.
left:1
center :0
right :2
…
:의 왼편의 값은 key :오른편 값은 value라고 한다.
위 출력 결과를 잘 보면 입력한 순서와 다르다는 것을 알 수 있다. 이는 해시(hash)의 특징으로 파이썬의 사전은 해쉬를 이용하는 것을 알 수 있다.
여러 자료형을 키(key)값과 value 값에 넣을 수 있다.
단, 키 값은 고정된 값이므로 리스트나 사전이 올 수 없다. 이유는 해시의 특성상 키 값이 바뀌면, 저장 위치를 새로 바꾸어 주어야 하기 때문에 이 값은 고정 값만 올 수 있는 것이다. value는 다음과 같이 바꿀 수 있다.
다음과 같이 value 값으로 함수가 올 수도 있다.
C언어라면 함수포인터를 멤버로 갖는 구조체를 만들어야 될 텐데, 파이썬에선 뚝딱! 하고 해치워버린다. 어마 무시한 생산력이다.
다음은 멤버함수들이다
copy()
흠 이 녀석은
Shallow copy 라고 얕은 복사를 한다고 해놨다. 그런데 얕은 복사가 아니다. 얕은 복사의 정의는 동일한 값의 주소를 참조하도록 참조하는 복사다. 그런데 여기서는 어떻게 된 건지.. 아무튼 결과는 다음과 같다.
a 에 변화를 주어도 b가 영향을 받지 않는다. 암튼 copy() 이 녀석은 서로 독립된 객체를 만들어 카피해준다.
update()
이 녀석은 다른 사전의 내용을 합쳐준다.
물론 a에 b와 동일한 키 값이 있다면 b의 값으로 갱신된다.
여기까지 정말 간단하게 자료형들을 살펴 봤는데, 이 자료형들은 다양하게 활용 하려면 제어문이나 문법에 대한 이해가 필요하다. 다른 함수들의 기능에 대해 알고 싶다면 다음과 같이 하면 된다.
파이썬 홈페이지로 ㄱㄱ싱한다. https://www.python.org/
Docs를 살포시 누른다.
왼편 아래에 Quick Seach에 원하는 함수를 타이핑 한 후 Go~!
dict.setdefalult 가 내가 찾는 것이다. 왼편 위에 버전은 꼭 택하자. 2.7 버전과 3.4 버전은 많이 다르기 때문이다.