这两个代码之间有什么不同?

-4 python dictionary

这两个代码有什么区别?第一部作品,但第二部作品不......

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

for k in prices:
      total=sum(prices[k]*stock[k])
Run Code Online (Sandbox Code Playgroud)

gro*_*sNL 5

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

total = 0
for k in prices:
    total+=prices[k]*stock[k]
Run Code Online (Sandbox Code Playgroud)

这将total最初设置为零,并将每次迭代的总计增加金额prices[k]*stock[k].