python 中 for 循环的 sum 函数

2 投票
6 回答
3103 浏览
提问于 2025-04-17 08:38

我只是想知道.. 在一个循环里,我怎么能对不同的元素进行求和呢?

for element in [(2,7),(9,11)] :
        g=sum(element[1]-element[0]+1)
        print g

如果我去掉'sum',我得到的是:

6
3

6 个回答

2

在编程中,有时候我们需要让程序做一些特定的事情,比如在某个条件下执行某段代码。这就像给程序设定了一些规则,让它知道什么时候该做什么。

比如说,你可能想要在用户输入一个数字时,程序才进行计算。如果用户输入的不是数字,程序就应该给出提示,告诉用户输入不正确。这种情况下,我们就需要用到“条件语句”。

条件语句就像是一个判断的开关,程序会根据你设定的条件来决定接下来要执行哪段代码。这样可以让程序更加智能,能够处理不同的情况。

总之,条件语句帮助我们控制程序的行为,让它能够根据不同的输入做出不同的反应。

>>> sum(right-left+1 for left,right in [(2,7),(9,11)])
9
3

你可以用一个生成器表达式来替换这个:

In [20]: sum(element[1] - element[0] + 1 for element in [(2, 7), (9, 11)])
Out[20]: 9

这可以简化为:

In [21]: sum(y - x + 1 for x,y in [(2, 7), (9, 11)])
Out[21]: 9

...我觉得这样更容易理解,并且可以确保列表中的每个元素都有正好两个部分。而且这样也不需要用到多余的lambda函数。

11

我不太确定你想要得到什么。是这个吗?

>>> print sum(element[1]-element[0]+1 for element in [(2,7), (9,11)])
9

这个生成器表达式和下面这个是一样的

temp = []
for element in [(2,7), (9,11)]:
    temp.append(element[1]-element[0]+1)
print sum(temp)

但是它不需要在内存中创建一个列表,所以效率更高。

撰写回答