Python >> Tutoriel Python >  >> Python

Somme de paires consécutives dans une liste comprenant une somme du dernier élément avec le premier

List2 = [List1[i] + List1[(i+1)%len(List1)] for i in range (len(List1))]

[List1[i] + List1[(i+1) % len(List1)] for i in range(len(List1))]

ou

[sum(tup) for tup in zip(List1, List1[1:] + [List1[0]])]

ou

[x + y for x, y in zip(List1, List1[1:] + [List1[0]])]  

A cause du i+1 , l'index sort de la plage

List1 = [1,3,5,6,8,7]
List2 = [List1[i-1] + List1[i] for i in range (len(List1))]

print (List2)

De cette façon ça marche un peu
Résultat :

[8, 4, 8, 11, 14, 15]