【问题标题】:Total sum of a list of numbers with list iteration列表迭代的数字列表的总和
【发布时间】:2021-03-21 19:47:08
【问题描述】:
num = {"functions": 10, "syntax": 13, "flow": 15, "loops": 22, "lists": 19}
total = 0

这不起作用:

total += num for num in num.values():

这样做:

for num in num_exercises.values():

    total_exercises += num 

在工作量或字符长度方面没有太大区别,但为了对语法的一般理解,最好能解释一下。

我自己无法通过谷歌搜索或试错来回答这个问题。

【问题讨论】:

  • num for num in num.values() 是生成器表达式,不能将生成器表达式添加到整数。你可以做total += sum(...)
  • 您不能只是翻转事物并期望它起作用。这就是原因。
  • 如果你想在一行中完成:total = sum(num.values())

标签: python list loops iteration


【解决方案1】:

这样做:

total += sum(num.values())

由于许多原因,前一个不起作用,最突出的原因之一是因为您将列表理解循环语法(如果我发音正确但您可以看到它here)放在括号之外.

this

【讨论】:

    【解决方案2】:

    您的第一段内联代码几乎是一个生成器表达式,但末尾有一个:,即SyntaxError

    你应该在这里使用sum

    total = sum(num.values())
    

    【讨论】:

      【解决方案3】:

      首先,您犯了一个语法错误,这就是您的代码无法运行的原因。我按照你的代码做了

      num = {"functions": 10, "syntax": 13, "flow": 15, "loops": 22, "lists": 19}
      total = 0
      for val in num.values():
          total += val
      print(total)
      

      输出为 79

      您可以通过更多方式获得值的总和。如果您想使用 sum 函数获得结果,请按照第一个 answer 然后您也可以将 sum 值存储到总变量,然后按照第二个 answer

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-28
        • 2013-09-30
        • 2012-10-11
        • 2012-04-01
        • 2023-01-11
        • 2018-12-14
        相关资源
        最近更新 更多