这两个代码有什么区别?第一个作品,但第二个不...这两个代码有什么不同?
total=sum(prices[k]*stock[k] for k in prices)
for k in prices:
total=sum(prices[k]*stock[k])
这两个代码有什么区别?第一个作品,但第二个不...这两个代码有什么不同?
total=sum(prices[k]*stock[k] for k in prices)
for k in prices:
total=sum(prices[k]*stock[k])
第二个示例是在循环的每次迭代中重新创建总数。相反,你必须使用这样的事情:
total = 0
for k in prices:
total+=prices[k]*stock[k]
这将设置total
零开始,并通过量prices[k]*stock[k]
增加总每次迭代。
我很抱歉,刚开始学习python昨天。实际上,我在练习中将其设置为零,但为什么有必要将这个+而不是将它加起来呢? – 2014-12-07 23:27:09
@RubemCarvalho:在你的第二个例子中,'sum'没有提供任何有用的用途。例如,如果你正在迭代'k = 5',你的代码将计算'prices [5] * stock [5]'的值。比方说,这个价值竟然是'100'。然后代码将这个参数的'sum'传递给它,在这种情况下,它看起来像'sum(100)'。当然,100的总和为100.然后将该值分配给“total”,它将替换上一次迭代中的总数。而不是替换总数,使用'+ ='将它添加到现有的总数。 – grovesNL 2014-12-07 23:34:18
哦,我明白了。起初我认为它会完成这项工作。非常感谢你! – 2014-12-07 23:38:59
你从哪里得到'key'? – 2014-12-07 23:16:57