如何在 python 的列表中将整数相加? [关闭]

Posted

技术标签:

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

如果我有一个类似的列表

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

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

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

【问题讨论】:

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

【讨论】:

python内置函数:docs.python.org/2/library/functions.html#sum【参考方案4】:

这个:

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

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

还有:

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

【讨论】:

还有其他方法吗? 嗯,您可以手动循环执行,也可以按照 The Recruit 的建议使用 reduce()

以上是关于如何在 python 的列表中将整数相加? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

python如何递增相加一个数字,比如25-200的全部数字?

如何在Python中将字符映射到整数范围[-128,127]?

在 Python 中将字符串列表转换为整数(或双精度)

如何在python3.6中将字符串转换为唯一的整数,反之亦然(在0到255之间)

python类中两个列表实例如何相加或相减

如何在Python中将dict元素值作为列表