2014-10-17 102 views
-7

我得到一個關鍵的錯誤與此代碼Python的主要錯誤: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

我覺得你與類型的字典混淆名單。

您的items字典的鍵是'焦炭','火星','幻想'等,這就是你如何訪問它像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

好吧,這工作的感謝和感謝的格式:) – 2014-10-17 15:55:41

0

正如其他人所說,你混淆listsdictionaries

有幾種方法可以做你想要的東西;

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

當您通過一本字典迭代,你得到的字典的keys;

for item in myDictionary: 
    print item 

這將打印

coke 
mars 
fanta 
wispa 
galaxy 

如果你想價格(我猜這就是他們是什麼),那麼你想要的values了。有兩種方法可以做到這一點。

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

或(一個在我看來,這是一個少許清潔劑):

for item, price in myDictionary.items(): 
    print item, price 

(我改變你的字典叫itemsmyDictionary,以避免可能造成的混亂,因爲類方法你想走出keyvalue雙對稱爲.items()