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}

댓글 없음:

댓글 쓰기

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

Xcode 26의 새로운 기능들

 애플의 AI준비에 대한 골든타임이 지나가고 있다는 말이 많이 들립니다. ㅎㅎ  애플의 그동안의 패쇄적인 환경을 생각하면 온디바이스AI나 LLM환경에서 다소 아쉬운 부분이 많이 있습니다. 다른 빅테크들과 전혀 다른 방향의 목소리를 내고 있어서 좀 우려...