이번 시간에는 dictionary 에 대해 공부해 보겠습니다.
dictionary 는 hash table 이라고 보시면 되겠습니다. 어떤 key 와 value 를 함께 element 로 삽입을 한 후, 향후 그 value 가 필요할 때는 key 를 이용하여 빠르게 검색하기 위한 것입니다. dictionary 를 표현할 때는 중괄호('{}') 를 사용합니다.
List 나 tuple 과는 key 가 있다는 점에서만 개념이 약간 다르겠죠.
key 가 필수이기 때문에 삽입 시와 검색 시에 key 가 필수로 주어져야 합니다. 너무 당연한 말인가요? ^^
>>> d = {} # dictionary 변수 선언 (필수) |
여러분은 사실 list 의 개념만 명확히 알고 계시면 tuple 과 dictionary 등의 추가적인 데이터형은 아주 손쉽게 이용법 및 개념을 간파할 수 있습니다.
이용법은 dir 과 help 만 있으면 됩니다.
그리고, 데이터형의 특징을 파악하는 것도 아주 쉽습니다.
예를 들어, 위에서 d 라는 dictionary 를 선언하고 값을 삽입한 후 d 의 결과를 보면 아래와 같이 중괄호를 사용한 것을 볼 수 있습니다.
{'a': 'alpha', 'g': 'gamma', 'o': 'omega'}
list 는 대괄호 [], tuple 은 소괄호 ()를 사용하죠.
즉, 어떤 연산의 결과나 함수 수행의 결과를 볼 때 데이터들이 어떤 괄호로 묶여있느냐만 보아도 그 결과의 타입 뿐 아니라 그를 이용하여 다른 연산을 어떻게 수행해야할지를 미리 짐작할 수 있습니다.
데이터형에 따라서 할 수 있는 연산들이 다르니까요. 어떤 연산이 가능한지는 dir 을 보면 되구요. ^^
dir 이 만능이군요. ㅎㅎ
>>> dir(d) ['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues'] >>> d.get('x') # d['x']와는 다르게 오류를 내뱉지 않는다. |
시험한 것을 보니 무척 쉽죠 ? dictionary 는 key 를 이용하여 검색하기 때문에 속도도 굉장히 빠릅니다.
여러분은 사실, dir/help 명령어와 괄호들([], {}, ()), 그리고 몇몇의 내장 함수 및 Coding Rule 만 알면 python 을 가지고 웬만한 프로그램은 만들 수 있습니다.
python 은 참 대단한 언어인 것 같습니다.
제가 사용해보니 python 은 객체에 대한 개념만 머리속에 가지고 있으면 금방 그 사용법들을 익힐 수 있습니다.
출처 : http://cloudrain21.tistory.com/entry/파이썬python-딕셔너리Dictionary-해쉬테이블Hash-Table
'Python' 카테고리의 다른 글
python regular expressions (0) | 2014.05.02 |
---|---|
python file (0) | 2014.05.02 |
python tuple (0) | 2014.05.02 |
python list sorting (0) | 2014.05.02 |
python list2 (0) | 2014.05.02 |