Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不应该';我没有sum()就可以做到这一点吗?[Python代码学院]_Python_For Loop_Sum - Fatal编程技术网

不应该';我没有sum()就可以做到这一点吗?[Python代码学院]

不应该';我没有sum()就可以做到这一点吗?[Python代码学院],python,for-loop,sum,Python,For Loop,Sum,因此,我是在Codeacademy上学习Python课程的最优秀的新手。列表和词典部分的最后一个问题()要求您以不同的价格打印不同项目的股票总值,定义如下: prices = { "banana": 4, "apple": 2, "orange": 1.5, "pear": 3 } stock = { "banana": 6, "apple": 0, "orange": 32, "pear": 15 } 我在思考如何将for循环的一次迭代的结果传递到下一次迭代,或者传递到循环外部时遇到了很多

因此,我是在Codeacademy上学习Python课程的最优秀的新手。列表和词典部分的最后一个问题()要求您以不同的价格打印不同项目的股票总值,定义如下:

prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}

stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}
我在思考如何将for循环的一次迭代的结果传递到下一次迭代,或者传递到循环外部时遇到了很多麻烦,因此我可以对它们求和。我花了一些时间查找这个问题,却找不到好的答案,这让我觉得我想的不对。但无论如何,我确实发现了
sum()
函数,因此我写了以下内容并得到了正确答案:

values = []

for items in prices:
    value = prices[items] * stock[items]
    values.append(value)

print sum(values)
问题是Codeacademy还没有教我
sum()
,所以我似乎缺少了一个非常明显的方法来实现这一点。没有它,我可以得到4个不同项目的单独值的列表,但不能求和。那么,有人能给我一个提示,告诉我如何将一次迭代的结果带入下一次迭代吗?但是,我认为这是错误的思考方式,对吗?如果是的话,有人能给我一个关于我应该如何思考的提示吗

我一直被困在第二个项目Euler问题上(斐波那契序列的偶数之和高达400万),我想也是出于类似的困惑


谢谢大家!!(如果这是一个不好的问题,请解释一下。再次感谢!)

您现在所拥有的并不是一个坏的解决方案。您可以跳过列表创建,只需添加到sum变量:

total = 0

for item in prices:
    total += prices[item] * stock[item]

print total
或者将生成器与
sum
一起用于一个衬里:

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

你现在拥有的不是一个坏的解决方案。您可以跳过列表创建,只需添加到sum变量:

total = 0

for item in prices:
    total += prices[item] * stock[item]

print total
或者将生成器与
sum
一起用于一个衬里:

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

啊。这很有道理。非常感谢。请注意,OP可能还没有学会
+=
,因此请注意,这与
totalValue=totalValue+prices[item]*stock[item]
相同。谢谢,我还没有从Codeacademy学到这一点,但在之前的谷歌搜索中确实出现过。这很有道理。非常感谢。请注意,OP可能还没有学会
+=
,所以请注意,这与
totalValue=totalValue+prices[item]*stock[item]
是一样的。谢谢,我还没有从Codeacademy学到这一点,但在之前的谷歌搜索中,它确实出现了。我不知道你甚至可以把x和y的算术都放在一行中。谢谢大家!@nowhereroad:您可能还没有找到生成器表达式。大多数教程/书籍/类等认为他们非常先进,我认为这是一个耻辱。你不仅被迫学习做每件事的艰难方法,并且接受过编写非Python代码的训练,这也使得你更难理解经验丰富的Python程序员(以及他们编写的代码)的建议,他们当然是以简单的方式来做事情。我没想到你甚至可以将算术和for x in y都放在一行中。谢谢大家!@nowhereroad:您可能还没有找到生成器表达式。大多数教程/书籍/类等认为他们非常先进,我认为这是一个耻辱。您不仅被迫学习做任何事情的艰难方式,并接受过编写非Python代码的培训,而且还使您更难理解经验丰富的Python程序员(以及他们编写的代码)的建议,当然,他们是以简单的方式做事情的。