python sum函数forloop

Lin*_*son 2 python sum

我只是想知道..如何在for循环中总结不同的元素?

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

如果我删除'sum',我得到:

6
3
Run Code Online (Sandbox Code Playgroud)

Tim*_*ker 11

我不确定你想做什么.是这个吗?

>>> print sum(element[1]-element[0]+1 for element in [(2,7), (9,11)])
9
Run Code Online (Sandbox Code Playgroud)

这个生成器表达式相当于

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

但它避免在内存中构建列表,因此更有效.

  • 你是一个学者和一个通灵者!荣誉. (2认同)