Hej, mam pytanie odnośnie działania pętli tworzącej listę sum dwóch pierwszych elementów z listy, np. 1+2, 2+3, 3+4 ... itd.
Przykładowo, z listy [1, 2, 3, 4, 8, 12] chciałbym uzyskać listę [3, 5, 7, 12, 20].
Napisałem prosty szkielet, ale nie wykonuje on sumowania do końca. Zwraca listę [3, 5, 7]. Byłbym wdzięczny za podpowiedź, gdzie tkwi błąd.
lista = [1, 2, 3, 4, 8, 12]
lista_sumowania = []
for elem in lista:
print('Lista:', lista)
lista_sumowania.append(lista[0] + lista[1])
print('Sumowanie:', lista_sumowania)
lista.pop(0)
print(lista_sumowania)
for elem, elem_next in zip(lista, lista[1::]):
, dalej:lista_sumowania.append(elem + elem_next)
. Nie nazwałbym tego jedna prosta komenda, ale OK. Właśnie po to są te biblioteki, żeby nie wymyślać koła na nowo tylko rozwiązać, każdy (prawie) problem z iterowaniem po listach. A użyciemore itertools
? Jak najbardziej:flatten
,chunked
...[x + y for x, y in zip(lista[0:], lista[1:])]
flatten i chunked... Faktycznie, ciekawe, do macierzy faktycznie by mi się dawniej przydało i nawet je zapamiętam. Ale tak i tak im dalej to czytam, tym bardziej mam wrażenie że to wymyślane na siłę :).