List는 순서로 접근이 가능합니다. 예) list[0] -> 첫번째 아이템

하지만 Dictionary는 순서로 접근이 불가능합니다.

(Object is not subscriptable 에러가 발생합니다.)

 

stack overflow를 보면 이에 대한 훌륭한 답변이 있어 소개하고자 합니다.

stackoverflow.com/questions/17793364/python-iterate-dictionary-by-index

 

Python Iterate Dictionary by Index

I want to iterate through a dictionary in python by index number. Example : dict = {'apple':'red','mango':'green','orange':'orange'} I want to iterate through the dictionary from first to last,...

stackoverflow.com

첫번째 답변이 아닌 두번째 답변을 보면 다음과 같이 세 가지 답변을 주고 있습니다..

(위 웹페이지에서 답변은 .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값을 보여줍니다.

+ Recent posts