我需要将每个键的值相乘,然后将所有值相加以打印单个数字。我知道这可能超级简单,但我卡住了
在我看来,我会用以下内容解决这个问题:
for v in prices:
total = sum(v * (v in stock))
print total
但类似的东西不起作用:)
prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3 }
stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15 }
答案 0 :(得分:8)
如果你想要个人,你可以使用dict理解:
>>> {k: prices[k]*stock[k] for k in prices}
{'orange': 48.0, 'pear': 45, 'banana': 24, 'apple': 0}
或直接进入总数:
>>> sum(prices[k]*stock[k] for k in prices)
117.0
答案 1 :(得分:2)
如果您已经知道,如何遍历字典,使用键索引字典并理解字典,那将是一个直接的
>>> total = {key: price * stock[key] for key, price in prices.items()}
>>> total
{'orange': 48.0, 'pear': 45, 'banana': 24, 'apple': 0}
即使您的Python实现不提供字典理解(< Py 2.7),您也可以将它作为列表理解传递给dict
内置
>>> dict((key, price * stock[key]) for key, price in prices.items())
{'orange': 48.0, 'pear': 45, 'banana': 24, 'apple': 0}
如果你不想在2.X和3.X之间兼容,你也可以使用iteritems而不是 项目
{key: price * stock[key] for key, price in prices.iteritems()}
如果您想要一个总结果,可以将各个产品传递给sum
>>> sum(price * stock[key] for key, price in prices.items())
117.0
答案 2 :(得分:1)
根据任务说明正确回答codeacademy:
prices = {
"banana" : 4,
"apple" : 2,
"orange" : 1.5,
"pear" : 3,
}
stock = {
"banana" : 6,
"apple" : 0,
"orange" : 32,
"pear" : 15,
}
for key in prices:
print key
print "price: %s" % prices[key]
print "stock: %s" % stock[key]
total = 0
for key in prices:
value = prices[key] * stock[key]
print value
total = total + value
print total
答案 3 :(得分:0)
我猜你还在使用codeacademy吗?如果是这样,那就这样做:
total = 0
for key in prices:
prices = 53
stock = 10.5
total = prices + stock
print total
与说明书不同,您需要在将它们相乘并将它们添加到总数之前将所有值相加。希望这会有所帮助。
答案 4 :(得分:0)
我编写了以下代码并且它有效。 关键价格:
print key
print "price: %s" % + prices[key]
print "stock: %s" % + stock[key]
关键价格: 价值=价格[关键] *股票[关键] 印刷价值 总=总+值 打印总数
答案 5 :(得分:-1)
total = 0
for key in prices:
print prices[key] * stock[key]
total += prices[key] * stock[key]
print total