Суммы элементов списка
Дан список целых чисел (пример: a=[1, 2, 3, 4]). Необходимо найти суммы элементов этого списка, т.е. на выходе должен получиться список b=[3, 4, 5, 5, 6, 7].
Ничего в голову не приходит, поиск выдает только общую сумму всех элементов в списке, возможно некорректно запрос формулировался.
Ответы (2 шт):
Автор решения: TigerTV.ru
→ Ссылка
Можно такой вариант:
from itertools import combinations
a = [1,2,3,4]
b = [sum(i) for i in combinations(a, 2)]
print(b)
а можно использовать 2 for:
a = [1,2,3,4]
n = len(a)
b = [a[i]+a[j] for i in range(n) for j in range(i+1,n)]
print(b)
а можно с итераторами:
from itertools import tee
a = [1,2,3,4]
b = []
it1, = tee(a, 1)
for i in it1:
it2 = tee(it1)[1]
for j in it2:
b.append(i+j)
print(b)
ну или тоже самое только с генератором:
from itertools import tee
def gen(a):
it1, = tee(a, 1)
for i in it1:
_, it2 = tee(it1)
for j in it2:
yield i+j
a = [1,2,3,4]
*b, = gen(a)
print(b)
Автор решения: Danis
→ Ссылка
a = [1, 2, 3, 4]
b = []
n = len(a)
for i in range(n):
for j in range(i+1, n):
b.append(a[i] + a[j])
print(b)