【问题标题】:What's the difference between these two "for ... in" statements? [closed]这两个“for ... in”语句有什么区别? [关闭]
【发布时间】:2014-12-07 23:15:17
【问题描述】:

这两个代码有什么区别?第一个有效,但第二个无效...

total=sum(prices[k]*stock[k] for k in prices)

for k in prices:
      total=sum(prices[k]*stock[k])

【问题讨论】:

  • 你从哪里得到key?

标签: python dictionary


【解决方案1】:

第二个示例是在循环的每次迭代中重新创建总数。相反,你必须使用这样的东西:

total = 0
for k in prices:
    total+=prices[k]*stock[k]

这会将total 初始设置为零,并将每次迭代的总数增加prices[k]*stock[k]。

【讨论】:

  • 对不起各位,昨天刚开始学习python。实际上,我在练习中将其设置为零,但为什么有必要将 + 而不是完全相加?
  • @RubemCarvalho:在您的第二个示例中,sum 没有任何用处。例如,如果您在迭代k=5,您的代码将计算prices[5]*stock[5] 的值。假设这个值原来是100。然后代码采用你传递给它的这个参数的sum,在这种情况下看起来像sum(100)。当然,100 的总和是 100。然后将该值分配给 total,它会替换上一次迭代的总数。使用+= 不会替换总数,而是将其添加到现有总数中。
  • 哦,我明白了。起初我认为它会完成这项工作。非常感谢!
猜你喜欢
  • 2015-05-30
  • 1970-01-01
  • 2016-04-16
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
相关资源
最近更新 更多