将两个词典(价格,股票)的值相乘,然后求和

Rhy*_*rix 5 python dictionary shopping

我需要将每个键的值相乘,然后将所有值相加以打印单个数字.我知道这可能超级简单,但我卡住了

在我看来,我会用以下内容解决这个问题:

for v in prices:
total = sum(v * (v in stock))
print total
Run Code Online (Sandbox Code Playgroud)

但这样的事情不会起作用:)

prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3 }

stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15 }
Run Code Online (Sandbox Code Playgroud)

DSM*_*DSM 11

如果你想要个人,你可以使用词典理解:

>>> {k: prices[k]*stock[k] for k in prices}
{'orange': 48.0, 'pear': 45, 'banana': 24, 'apple': 0}
Run Code Online (Sandbox Code Playgroud)

或直接进入总数:

>>> sum(prices[k]*stock[k] for k in prices)
117.0
Run Code Online (Sandbox Code Playgroud)