>>> person = {'Name': 'Ford Prefect', "Gender": 'Male', 'Occupation': 'Researcher'}
# 원하는 value 검색
>>> person['Name']
Ford Prefect
# key, value 추가
>>> person['Age'] = 21
(참고로 C++ 과 자바에서는 딕셔너리를 map이라고 부르며, 루비는 hash라고 부른다)
두개의 열과 여러 데이터 행을 갖는데이터를 위해 사용된다
즉 테이블이라고도 볼 수 있다
예제 1)
found = {}
found['a'] = 0
found['e'] = 0
found['i'] = 0
found['o'] = 0
found['u'] = 0
>>> found
{'a': 0, 'e': 0, 'i': 0, 'o': 0, 'u': 0}
>>> found['a'] = found['a'] + 1
>>> found
{'a': 1, 'e': 0, 'i': 0, 'o': 0, 'u': 0}
예제 2)
found = {}
found['a'] = 0
found['e'] = 0
found['i'] = 0
found['o'] = 0
found['u'] = 0
for k in found:
print(k, 'was found', found[k], 'time(s).')
a was found 0 time(s).
e was found 0 time(s).
i was found 0 time(s).
o was found 0 time(s).
u was found 0 time(s).
하지만 위의 방식보다는 items라는 내장 메서드를 이용해서 key, value를 접근이 가능하다
vowels = ['a', 'e', 'i', 'o', 'u']
word = input("Provide a word: ")
found = {}
for letter in word:
if letter in vowels:
found.setdefault(letter, 0)
found[letter] += 1
for key, value in sorted(found.items()):
print(key, 'was found', value, 'time(s).')
setdefault() 를 이용해서 필요한 초기화를 해주고 keyError를 방지할 수도 있다
초기화 코드를 삭제하면 KeyError라는 런타임 에러가 발생한다
Traceback (most recent call last):
File "/Users/jayden/PycharmProjects/pythonProject2/vowels.py", line 9, in <module>
found[letter] += 1
KeyError: 'a'
이것을 관련된 key를 찾을 수 없을 때 발생하는 에러이다
이때 in연산자로 key가 존재하는지 먼저 확인해서 런타임에러를 방지한다
fruits = {}
if 'apple' in fruits:
fruits['apple'] += 1
else:
fruits['apple'] = 1
# {'apple': 1}