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}

댓글 없음:

댓글 쓰기

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

5월 14일 새벽에 chatGPT 4o가 발표되었습니다. 옵티마이즈, 옴니라는 의미인데 실시간 통역, 다자간 회의, 멀티모달 기능의 강화등이 보이네요.

  초격차로 OpenAI진영이 다시 앞서가는 모양을 보여주고 있습니다. 저도 새벽에 일어나자 마자 올라온 영상들과 글을 정리하고 있습니다. ㅎㅎ 영화 HER의 사진이 새벽에 많이 올라왔었는데 저도 안본 영화입니다. 주말에 한번 봐야 할 것 같습니다....