2014-12-24 144 views
0

我正在学Python编程。我的任务是与这些值创建两个字典:在Python中打印字典

prices = { 
    "banana" : 4, 
    "apple" : 2, 
    "orange" : 1.5, 
    "pear" : 3 
    } 
stock = { 
    "banana" : 6, 
    "apple" : 0, 
    "orange" : 32, 
    "pear" : 15 
    } 

我负责打印出来的东西有关此格式的词典:我本来是要使用一个for循环来访问数据。

apple 
price: 2 
stock: 0 

该指示说,由于两个字典有相同的“关键”,我可以同时访问他们两个。但是我不知道这是什么意思。学习Python到目前为止是一件轻而易举的事情,但这让我难以置信。

回答

5

两个字典有'banana'关键,都有一个'apple'键等想必这意味着你可以通过一个的钥匙环和其他依赖于相同的键存在:

for key in stock: 
    print key, stock[key], prices[key] 

的以上代码将打印stock中的密钥,并添加该字典中的值,并查找prices中的值。如果prices确实不是具有相同的密钥,则代码将失败,并且KeyError

我会将实际产出留给您,但现在您的问题已减少到计算库存值。

0

字典是“key:value”对的列表。当你想从字典中获得值时,你需要指定指向该值的键。既然你提到的两个字典都有相同的密钥(例如,苹果,香蕉),你可以使用相同的密钥来从两者中获取值。

为了获得字典中的所有键,可以使用“键”功能。所以你想要的代码是:

for key in prices.keys(): 
    print(key) 
    print("prices: %s" % prices[key]) 
    print("stock: %s" % stock[key]) 
+0

在这里你不需要'.keys()'函数;直接在字典上迭代*。调用'dict.keys()'不仅是多余的,而且由于需要创建一个额外的对象也更加昂贵。在Python 2中,甚至包括首先将所有键复制到列表对象。 –

+0

的确,但关键点在于解释而不是优化... – dcoder

+0

当然,但教导正确的方法很重要。 –