Суммирование элементов списков в цикле for - PullRequest
0 голосов
/ 26 апреля 2018

Итак, основа моего вопроса дана здесь . Ведь мне нужно добавить элементы списков. В простейшем примере:

first = [1,2]
second = [6,7]

Тогда

[x + y for x, y in zip(first, second)]

, что дает:

#[7,9]

Однако моя проблема в том, что я создаю количество списков через цикл for. В цикле for списки не сохраняются, поэтому для их просмотра используется print(list) в конце цикла, и он печатает списки. Теперь, как я могу написать код для просмотра созданных списков и суммирования элементов указанным выше способом?

Пример:

l = []
for i in range(2):
    l= list(range(5))
    print(l)

вышеупомянутый производит:

#[0, 1, 2, 3, 4]
#[0, 1, 2, 3, 4]

Как добавить строку в цикл for для суммирования элементов списка один за другим, чтобы получить:

#[0, 2, 4, 6, 8]

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Из того, что я понимаю, есть еще один способ сделать это, т.е. использовать оператор add.

from operator import add
n=5
l = [0]*n
for i in range(2):
    l = map(add, l, range(n))

print([x for x in l]) 

Выход:

[0, 2, 4, 6, 8]
0 голосов
/ 26 апреля 2018

Используйте переменную для хранения итогов и обновите ее в цикле

totals = [0]*5
for i in range(5):
    l = list(range(5))
    totals = [x + y for x, y in zip(totals, l)]
print totals

Или вы можете сохранить все свои списки в другом списке, а затем использовать свою оригинальную идею:

all_lists = []
for i in range(5):
    l = list(range(5))
    all_lists.append(l)
totals = [sum(lists) for lists in zip(*all_lists)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...