這兩個代碼有什麼區別?第一個作品,但第二個不...這兩個代碼有什麼不同?
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