2014년 10월 7일 화요일

파이썬 기초 강좌 - 이번에는 사전식 구조에 대해 살펴봅니다.

사전(Dictionary)은 강력하면서 알아두면 편리한 자료구조입니다. 짧은 키를 통해서 빠른 검색을 유도하는 구조입니다. 자바나 닷넷에서도 동일하게 제공됩니다.

>>> d = dict(a=1, b=3, c=5)
>>> d
{'a': 1, 'c': 5, 'b': 3}
>>> type(d)
<type 'dict'>
>>> color = {"apple":"red", "banana":"yellow"}
>>> color
{'apple': 'red', 'banana': 'yellow'}
>>> color[0] ==> 에러 발생
Traceback (most recent call last):
  File "<pyshell#76>", line 1, in <module>
    color[0]
KeyError: 0
>>> color["cherry"] = "red"
>>> color
{'cherry': 'red', 'apple': 'red', 'banana': 'yellow'}
>>> for c in color.items():
 print(c)

('cherry', 'red')
('apple', 'red')
('banana', 'yellow')
>>> for k, v in color.items():
 print(k, v)

('cherry', 'red')
('apple', 'red')
('banana', 'yellow')
>>> for k in color.keys():
 print(k)

cherry
apple
banana
>>> for v in color.values():
 print(v)

red
red
yellow


아래와 같이 다른 데모를 볼 수 있습니다.
d = {'one':'hana', 'two':'dul', 'three':'set'}
>>> d
{'three': 'set', 'two': 'dul', 'one': 'hana'}
>>> d['one']
'hana'
>>> d['four'] = 'net'
>>> d
{'four': 'net', 'three': 'set', 'two': 'dul', 'one': 'hana'}
>>> d['one'] = 1
>>> d
{'four': 'net', 'three': 'set', 'two': 'dul', 'one': 1}
>>> 'one' in d
True
>>> d.keys()
['four', 'three', 'two', 'one']
>>> d.values()
['net', 'set', 'dul', 1]
>>> d.items()
[('four', 'net'), ('three', 'set'), ('two', 'dul'), ('one', 1)]

연습을 위한 또 다른 데모입니다.
member = {'basketball':5, 'soccer':11, 'baseball':9}
member['baseball'] ==>키를 통해 값을 출력해 본다.
9
member['volleyball'] = 7 ==>값을 수정해 본다.
member
{'baseball': 9, 'basketball': 5, 'soccer': 11, 'volleyball': 7}
del member['basketball']
(사전식 구조의 메서드들 데모)
>>> phone = {'kim':2223333, 'lee':1231234, 'park':1112222 }
>>> phone.keys()
dict_keys(['park', 'lee', 'kim'])
>>> phone.values()
dict_values([1112222, 1231234, 2223333])
>>> 'park' in phone ==>값이 있는지를 조사한다.
True
>>> 'moon' in phone
False
>>> p = phone ==>참조가 복사되므로 한쪽이 수정되면 같이 변경된다.
>>> p
{'park': 1112222, 'lee': 1231234, 'kim': 2223333}
>>> phone['kim'] = 1111111
>>> p
{'park': 1112222, 'lee': 1231234, 'kim': 1111111}
>>> phone
{'park': 1112222, 'lee': 1231234, 'kim': 1111111}
>>> p2 = phone.copy() ==> 별도로 객체가 생성된다.
>>> phone['lee'] = 2222222
>>> phone
{'park': 1112222, 'lee': 2222222, 'kim': 1111111}
>>> p2
{'park': 1112222, 'lee': 1231234, 'kim': 1111111}

댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.

'일론 머스크' '젠슨 황' AI 리더들, 그들의 성공 비결은 바로 이것 - 누가 부자가 되는가 영상입니다. ㅎㅎ

  책을 통해서만 접했던 내용들을 영상으로 보니 더 실감이 납니다. KBS에서 방송된 내용인데 주말에 보시면 좋은 영상입니다. 엔비디아의 주가가 이해가 됩니다. ㅋㅋ 생각보다 미국시장이 강한 것이 AI는 거의 미국과 중국이 주도하는 시장이 되고 있습...