循环字典并打印值?

时间:2013-10-18 17:07:33

标签: python

我再次问这里因为我不知道怎么做... 我有这段代码:

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"有货,但它打印出钥匙,"橙色"而且我不知道如何循环和打印所有字典的价值,你能帮助我吗?

3 个答案:

答案 0 :(得分:2)

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

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

但是,如果KeyError中的密钥不在prices词典中,则上述内容会引发stock

要确保两个字典中都存在密钥,您可以使用dictionary views获取两个字典密钥集之间的集合交集:

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

这将循环遍历 两个词典中存在的那些键。

答案 1 :(得分:0)

假设pricesstock之间的密钥始终相同,您可以这样做:

for key in prices:
   print key
   print "price: " + prices[key]
   print "stock: " + stock[key]

答案 2 :(得分:0)

prices and stocks可以解析为pricesstocks,但不会解决两者的连接问题。

这就是它的工作原理:Python确实对X and Y进行了评估。首先,它会查看X,如果它是假的(例如False[]None),则表达式会解析为X。仅当X不是假的(例如True[1,2]42)时,它才会返回Y

一些例子:

>>> 2 and 3
3
>>> [] and 3
[]
>>> 2 and 'hello'
'hello'
>>> [] and 'hello'
[]
>>> [] and None
[]
>>> 42 and []
[]