Добавление элементов в список в Python - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть список a=[1,2,3,4,5,6]

Я хотел бы создать функцию, которая суммирует все n элементов вместе в новом списке, например

my_sum(a,2)=[3,7,11] - новый список с [0] + a [1], a [2] + a [3]

my_sum(a,3)=[6,15] - a[0]+a[1]+a[2],

Я застрял, у кого-нибудь есть идея?

Ответы [ 3 ]

1 голос
/ 20 апреля 2020

Попробуйте это:

def my_sum(a, n):
    return [sum(a[i: i + n]) if len(a[i: i + n]) >= n else None for i in range(0, len(a), n)]
a=[1,2,3,4,5,6]
my_sum(a, 4)
0 голосов
/ 21 апреля 2020

Вы можете попробовать это:

def my_sum(a, b):
    sum = 0
    new_list = []
    lenght = len(a)
    if lenght % b == 0:
        for count, value in enumerate(a):
            if count + 1 == lenght:
                sum += value
                new_list.append(sum)
            elif count != 0 and count % b == 0:
                new_list.append(sum)
                sum = 0
                sum += value
            else:
                sum += value
        return new_list
    else:
        print("It's not possible")
        return

Вы можете сделать это только в том случае, если номер суммы делится на длину списка (это и есть причина первого «Если»).

0 голосов
/ 20 апреля 2020

Возможно, это то, что вы ищете, также вполне читабельно:

def my_sum(array, n):
    result = []
    if n > len(array):
        return []
    for i in range(0, len(array), n):
        result.append(sum(array[i:i+n]))

    return result

ls = [1,2,3,4,5,6]
print(my_sum(ls, 5))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...