如何在lis中添加n个连续元素

2024-09-30 06:21:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我最后一个问题是adding two consecutive numbers in a list。但答案并非一概而论。如何在中添加nconsecutive elements 名单。其中n >= 2

if n = 3

l = [1,2,3,4,5,6] result = [6, 15]
l = [1,2,3,4,5,6,7] result = [6, 15, 7]
l = [1,2,3,4,5,6,7,8] result = [6, 15, 15]

if n = 4

l = [1,2,3,4,5,6,7] result = [10, 18]

Tags: 答案inifelementsresultlisttwonumbers
3条回答
n=numConsecutiveElements
[sum(list[x:x+n]) for x in range (0,len(list),n)]

会成功的

代码说明

^{pr2}$

我认为您可以像以前一样做同样的事情,但只需将输入泛化为izip_longest。在

import itertools as it
s = [l[n-i::n] for i in range(n)]
[sum(r) for r in it.izip_longest(*s, fillvalue=0)]

或者在一条线上

^{pr2}$
def add(seq, n):
    return [sum(seq[i:i + n]) for i in range(0, len(seq), n)]


print(add([1, 2, 3, 4, 5, 6], 3))
print(add([1, 2, 3, 4, 5, 6, 7], 3))
print(add([1, 2, 3, 4, 5, 6, 7, 8], 3))
print(add([1, 2, 3, 4, 5, 6, 7], 4))

相关问题 更多 >

    热门问题