본문 바로가기

FALL in/G.MA's 파이썬

[파이썬 Containers] - 딕셔너리


딕셔너리 (Dictionaries) 

딕셔너리는 (key, value)를 저장하는데 key는 구분자이고 value는 내용이다. 예를들어 사전에서 apple을 찾는다고하자. apple은 key가 되는것이고  apple에 대한 설명이 value 가 되는것이다. 


>>> dic = {'G.ma':'blog','Jiyeon':'person'} # 딕셔너리 초기화


>>> print dic['Jiyeon'] # dic에서 'Jiyeon' 인 키를 찾아 value를 출력한다.

person


>>> print 'Jiyeon' in dic # dic안에 'Jiyeon'이라는 키가 있는지 찾는다. 있으면 True 출력

True


>>> dic['cat'] = 'animal' # dic에 key와 value를 추가한다.

>>> print dic['cat']

animal


>>> print dic['dog'] # key가 'dog'인 원소를 찾지못하여 키 에러가 난다.

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

KeyError: 'dog'


>>> print dic.get('dog','not available') # dog를 찾지 못하면 'not available'을 출력한다.

not available


>>> del dic['cat'] # key가 cat인 원소를 제거한다.

>>> print dic

{'G.ma': 'blog', 'Jiyeon': 'person'}


- 딕셔너리 루프(Loops)

>>> dic2 = {'person':2,'dog':4,'spider':8}

>>> for x in dic2:

...     legs = dic2[x]

...     print 'A %s has %d legs' % (x,legs)

... 

A person has 2 legs

A dog has 4 legs

A spider has 8 legs


>>> for x,leg in dic2.iteritems():

...     print 'A %s has %d legs' % (x,legs)

... 

A person has 8 legs

A dog has 8 legs

A spider has 8 legs

iteritems()함수 -> key와 value둘다 반환해준다.


- 딕셔너리의 이해

>>> numbers = range(5)

>>> print numbers

[0, 1, 2, 3, 4]


>>> even_num2square = {x:x**2 for x in numbers if x % 2 == 0}

>>> print even_num2square

{0: 0, 2: 4, 4: 16}