프로그래밍/python

파이썬(python) 딕셔너리(dictionary)-사전 기초

콘파냐 2015. 7. 6. 18:33
반응형

딕셔너리(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 버전은 많이 다르기 때문이다.

반응형