python程序打印一个范围内连续数字的总和



编写一个python程序,打印列表中某个范围内3个连续数字的和。例如,我们取输入n=8,这样程序就会打印出来[1+2+3,2+3+4+3+4+4+5+6+,5+6+7,6+7+8]表示输出应为=[6,9,12,15,18,21]我是编程新手,我的代码是:-

arr=[]
N=int(input("enter the value of N"))
def lst(arr):
for i in range(N):
x=[i]+[i+1]+[i+2]
arr.append(x)
lst(arr)
print(arr)

这将为您提供所需的输出。它从1而不是0开始索引,并在每次迭代中创建的列表上调用sum

编辑:正如评论中所指出的,创建这些列表是不必要的——你可以做一个总结。

arr=[] 
N=int(input("enter the value of N")) 
def lst(arr): 
for i in range(1, N - 1): 
x = (i) + (i + 1) + (i + 2) # for ease of reading 
arr.append(x) 

lst(arr) 
print(arr)

使用列表理解-给定一个列表和感兴趣的长度lgt:

l = list(range(1, 9))
lgt = 3
print([sum(l[i-lgt:i]) for i in range(lgt, len(l) + 1)])

输出

[6, 9, 12, 15, 18, 21]

为什么不能使用列表理解,

In [1]: [(i+1) + (i+2) + (i+3) for i in range(7)]
Out[1]: [6, 9, 12, 15, 18, 21, 24]

最新更新