python 中 for 循环的 sum 函数
我只是想知道.. 在一个循环里,我怎么能对不同的元素进行求和呢?
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)
但是它不需要在内存中创建一个列表,所以效率更高。