Code Python pour la somme, avec la condition

La tâche est la suivante: la somme des éléments d'une liste, même avec des index et multiplier le résultat par le dernier de la liste elemet.
J'ai cette oneliner solution de code en Python.

array = [-37,-36,-19,-99,29,20,3,-7,-64,84,36,62,26,-76,55,-24,84,49,-65,41] 
print sum(i for i in array if array.index(i) % 2 == 0)*array[-1] if array != [] else 0

Mon résultat est -1476 ( Le calcul est: 41*(-37-19+29+3-64+36+26+55+84-65) )

Le bon résultat est 1968.

Je ne peux pas comprendre pourquoi ce code ne fonctionne pas correctement dans ce cas particulier.

OriginalL'auteur beistvan | 2014-04-06