关于Codecademy
prices = {
"banana" : 4,
"apple" : 2,
"orange" : 1.5,
"pear" : 3,
}
stock = {
"banana" : 6,
"apple" : 0,
"orange" : 32,
"pear" : 15,
}
total = 0
for key in prices:
print prices[key] * stock[key]
total += prices[key] * stock[key]
print total
如果我将代码更改为,
total = prices[key] * stock[key]
它没有用。正确的总数不会打印出来。 + = 如何更改我的代码?
答案 0 :(得分:0)
简短回答:
因为您不仅需要最后一个产品的运行总计。
答案很长:
=
运算符只为左侧的变量指定新值,+=
运算符更新左侧的值通过添加右侧来支持它。
你也可以这样做:
total = 0
for key in prices:
total = total + prices[key] * stock[key]
甚至没有for
- 循环:
total = sum(prices[key] * stock[key] for key in prices)
答案 1 :(得分:-1)
使用+=
说“取=, and add it to the right side of the
=`的左侧,并为其指定相同的变量名称。”
扩展您的代码:
total += prices[key] * stock[key]
等同于不可变对象:
total = total + prices[key] * stock[key]
编辑:对于高马的人来说,在一个问题与可变对象交互无关的问题中,他们会讨论与可变对象的交互:
编辑上面列出的代码在可变对象(例如list
或dict
)的情况下并不等效,因为+=
运算符保留了变量的相同引用左边。同时,与+
分开使用=
会产生新的列表引用。
例如:
li = []
print(id(li))
li += [1]
print(id(li)) # they are the same id
VS
li = []
print(id(li))
li = li + [1]
print(id(li)) # they are different ids