0

我再次在这里问,因为我不知道该怎么做......我有这个代码:

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

for e in prices and stock:
    print e
    print "price: " + str(e)
    print "stock: " + str(e)

并且在

print "price: " + str(e)
print "stock: " + str(e) 

我想循环并打印值,例如价格中的“1.5”和库存中的“32”,但它会打印键“橙色”而且我不知道如何循环和打印所有字典的值,可以你帮帮我好吗?

4

3 回答 3

2

您只需要遍历其中一个字典,并使用映射访问来打印值:

for e in prices:
    print e
    print "price:", prices[e]
    print "stock:", stock[e]

但是,如果字典中不存在KeyError键,则上述内容将引发 a 。pricesstock

为了确保两个字典中都存在键,您可以使用字典视图来获取两个字典键集之间的集合交集:

for e in prices.viewkeys() & stock:
    print e
    print "price:", prices[e]
    print "stock:", stock[e]

这将仅遍历两个字典中都存在的那些键。

于 2013-10-18T17:10:02.653 回答
0

假设密钥之间总是相同的pricesstock您可以简单地这样做:

for key in prices:
   print key
   print "price: " + prices[key]
   print "stock: " + stock[key]
于 2013-10-18T17:11:43.580 回答
0

prices and stocks解析为pricesstocks,但从不解析为两者的串联。

它是这样工作的:Python 对X and Y. 首先它查看X如果它是假的(例如Falseor[]None),那么表达式解析为X。只有当X它不是假的(例如Trueor [1,2]or 42)时它才返回Y

一些例子:

>>> 2 and 3
3
>>> [] and 3
[]
>>> 2 and 'hello'
'hello'
>>> [] and 'hello'
[]
>>> [] and None
[]
>>> 42 and []
[]
于 2013-10-18T17:14:22.790 回答