Python的主要错误:1

问题描述:

我得到一个关键的错误与此代码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 

我觉得你与类型的字典混淆名单。

您的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

正如其他人所说,你混淆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()