2014-10-17 6 views
-7

는이 코드 여기파이썬 키 오류 : 1

items = { 
     'coke': '1.50', 
     'mars': '1.00', 
     'fanta': '1.40', 
     'wispa': '1.50', 
     'galaxy': '2.00', 
     } 
def list_items(): 
    for x in range(0,len(items)): 
     print("Item:", items[x]) 

와 키 오류를 오류 로그

line 12, in list_items 
    print("Item:", items[x]) 
KeyError: 0 

답변

2

난 당신이 dicts으로 목록을 혼동하는 생각을한다 얻을.

items dict의 키는 '코크', '화성', '환타'등이며 사용자가 액세스하는 방법은 items['coke']입니다.

이 항목을 반복하려면이 같은 더 일반적이다 : 다른 사람이 말했다

>>> def list_items(): 
...  for k,v in items.items(): 
...   print("{}: {}".format(k, v)) 
...   
>>> list_items() 
coke: 1.50 
mars: 1.00 
galaxy: 2.00 
wispa: 1.50 
fanta: 1.40 
+0

이게 잘 됐네요, 포맷에 감사드립니다 :) –

0

, 당신은 listsdictionaries을 혼동하고 있습니다.

원하는 것을 할 수있는 몇 가지 방법이 있습니다.

myDictionary = { 
    'coke': '1.50', 
    'mars': '1.00', 
    'fanta': '1.40', 
    'wispa': '1.50', 
    'galaxy': '2.00', 
    } 

사전을 반복 할 때 사전의 keys이 표시됩니다. 당신은 가격이 (내가 그 그들이 무엇을 추측하고있어), 당신은 너무 values을 원하는하려면

for item in myDictionary: 
    print item 

coke 
mars 
fanta 
wispa 
galaxy 

를 인쇄합니다. 그것을하기위한 두 가지 방법이 있습니다.

for item in myDictionary: 
    print item, myDictionary[item] 

또는

(AN 내 의견으로는,이 조금 청소기) : 클래스 이후,
for item, price in myDictionary.items(): 
    print item, price 

(나는이 발생했을 수있는 혼란을 방지하기 위해, myDictionaryitems를라는 사전 변경 방법 key value 쌍을 .items()라고 부름