List는 순서로 접근이 가능합니다. 예) list[0] -> 첫번째 아이템
하지만 Dictionary는 순서로 접근이 불가능합니다.
(Object is not subscriptable 에러가 발생합니다.)
stack overflow를 보면 이에 대한 훌륭한 답변이 있어 소개하고자 합니다.
stackoverflow.com/questions/17793364/python-iterate-dictionary-by-index
첫번째 답변이 아닌 두번째 답변을 보면 다음과 같이 세 가지 답변을 주고 있습니다..
(위 웹페이지에서 답변은 .iterkeys() 과 .iteritems() 로 나와있는데 .keys()와 .items()로 바꾸었습니다. 아마도 3버전 이전에서의 답변인 것 같습니다.)
You can iterate over keys and get values by keys:
for key in dict.keys():
print(key, dict[key])
-> 키값을 돌려줍니다.
You can iterate over keys and corresponding values:
for key, value in dict.items():
print(key, value)
-> 키값과 밸류값을 같이 돌려줍니다.
You can use enumerate if you want indexes (remember that dictionaries don't have an order):
for index, key in enumerate(dict): ...
print(index, key)
-> enumerate 함수를 사용합니다.
별 것 아닌 것 같아도 매우 훌륭하고 깔끔한 답변입니다.
예제로 본다면 다음과 같습니다.
1
2
3
4
5
6
7
8
9
10
|
dicta = {"fruit":"apple", "animal":"dog", "color":"red"}
for key in dicta.keys():
print(key, dicta[key])
for key, value in dicta.items():
print(key, value)
for index, key in enumerate(dicta):
print(index, key)
|
cs |
결과는,
fruit apple
animal dog
color red
fruit apple
animal dog
color red
0 fruit
1 animal
2 color
마지막 enumerate는 순서와 key값을 보여줍니다.