본문 바로가기

프로그래밍/파이썬

[파이썬] dict타입을 인덱스로 접근하기

dict를 인덱스로 접근하기

문제

items = {'cabbage' : 5000, 'Daikon' : 2000, 'Lettuce' : 3000}

다음과 같은 상품이 있다. 사용자의 입력 을 받아 해당 상품의 가격 을 출력하고자 한다.

해결방법

for index, (key, elem) in enumerate(items.items()):
  print(index, key, elem)

print("Select Item(1-3) = ")
goodsIdx = int(input())
print("Total Price : {} ".format(list(item.values())[goodsIdx-1]))
  1. enumerate 함수를 사용한다.
  2. item.values를 list로 만들어준다.

2번이 핵심이라고 볼 수 있다. items.values()의 타입은 dict_values 형식이므로, 타입을 리스트로 만들어주면 인덱스로 접근이 가능해진다.

스크린샷, 2017-10-25 12-38-47

참고로 index + 1을 해서 사용자가 보기 편하게 만들었다. 이 부분 때문에 맨 마지막 부분에서 list(item.values())[goodsIdx-1]을 해주어야 한다.