【问题标题】:How do I add together integers in a list in python? [closed]如何在 python 的列表中将整数相加? [关闭]
【发布时间】:2012-12-04 05:56:13
【问题描述】:

如果我有一个类似的列表

x = [2, 4, 7, 12, 3]

我将使用什么函数/过程将所有数字相加?

除了使用 sum 还有什么办法吗 ()?

【问题讨论】:

  • 你为什么要问除了简单明了的方法之外还有其他方法吗?
  • 想象一下,有人要一次一个地给你读这些数字,而你有一张纸和一支铅笔,当另一个人读到列表的末尾时,你必须有所有数字的总和。你会怎么做?现在把这个概念变成一个 Python 程序。
  • -1 这在 Google 上一定很容易找到
  • 注意,如果你用谷歌搜索这个主题,这是第一个问题。仅仅因为你相信某件事很容易自己研究并不意味着它不属于这里。

标签: python list integer add


【解决方案1】:

第一种方式:

my_list = [1,2,3,4,5]
list_sum = sum(list)

第二种方式(效率较低):

my_list = [1,2,3,4,5]

list_sum = 0
for x in my_list:
   list_sum += x

【讨论】:

  • 您的第一个示例不起作用。您需要将第二行更改为list_sum = sum(my_list)
【解决方案2】:
x = [2, 4, 7, 12, 3]
sum_of_all_numbers= sum(x)

或者你可以试试这个:

x = [2, 4, 7, 12, 3] 
sum_of_all_numbers= reduce(lambda q,p: p+q, x)

Reduce 是一种对列表的每个元素累积执行函数的方法。它可以执行任何功能,因此如果您定义自己的模函数,它将在列表的每个元素上重复执行该功能。为了避免为执行 p+q 定义整个函数,您可以改用 lambda 函数。

【讨论】:

  • 当我这样做时,我得到了一个 NameError,它说全局名称 'reduce' 没有定义
  • 非常适合我。>>> x = [2, 4, 7, 12, 3] >>> sum_of_all_numbers= reduce(lambda q,p: p+q, x) >>>打印 sum_of_all_numbers 28 >>>
  • 我能破译的唯一原因可能是您正在使用 Python 3,并且您正在遵循为 Python 2.x 设计的教程。reduce 已从 python 3 的内置工具中删除。仍然如果你想使用 reduce,你可以通过从 functools 模块导入它。只需在顶部添加一个 stmt 作为 import functools 快乐编码 :) 如果它适用于你,现在让我看看。
  • 在什么意义上reduce(lambda q,p: p+q, x)sum(x)“更有效率”?
  • 对于数字类型,reducesum 更有效,否则永远不会将 sum 添加到语言中。此外,使用operator.add 代替 lambda 函数效率更高
【解决方案3】:

你可以试试:

x = [2, 4, 7, 12, 3]    
total = sum(x)

【讨论】:

【解决方案4】:

这个:

sum([2, 4, 7, 12, 3])

您使用sum() 来添加列表中的所有元素。

还有:

x = [2, 4, 7, 12, 3]
sum(x)

【讨论】:

  • 还有其他方法吗?
  • 嗯,您可以手动循环执行,也可以按照 The Recruit 的建议使用 reduce()
猜你喜欢
  • 1970-01-01
  • 2020-04-14
  • 1970-01-01
  • 2010-12-05
  • 2017-05-15
  • 1970-01-01
  • 2021-11-20
  • 2019-12-26
  • 1970-01-01
相关资源
最近更新 更多