Parfois, nous pourrions vouloir connaître les indices des listes combinées avec zip. Dans ce cas, nous pouvons utiliser enumerate() en plus de zip(). Cependant, il est essentiel de comprendre ce que fait chacune de ces fonctions. zip renvoie un tuple pour chaque paire d'éléments des listes. enumerate renvoie un tuple pour chaque élément d'une liste. Par conséquent, la structure résultante sera un tuple de tuples :
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
zip(a, b) # [(1, 5), (2, 6), (3, 7), (4, 8)]
enumerate(a) # [(0, 1), (1, 2), (2, 3), (3, 4)]
enumerate(b) # [(0, 5), (1, 6), (2, 7), (3, 8)]
enumerate(zip(a, b)) # [(0, (1, 5)), (1, (2, 6)), (2, (3, 7)), (3, (4, 8))]
# Therefore, we need to loop over the elements with tuples:
for i, (item1, item2) in enumerate(zip(a, b)):
print(f'index: {i} => a[i]={item1} and b[i]={item2}')
# index: 0 => a[i]=1 and b[i]=5
# index: 1 => a[i]=2 and b[i]=6
# index: 2 => a[i]=3 and b[i]=7
# index: 3 => a[i]=4 and b[i]=8
# Par conséquent, nous devons parcourir les éléments avec des tuples :
Défi
Étant donné 3 listes, chacune sur une ligne séparée, vous êtes invités à créer une nouvelle liste à partir de celles-ci qui représentera la somme des éléments des 3 listes, tout en sautant les valeurs aux positions impaires (l'indexation commence à 0).
L'entrée contient 3 lignes - chacune contenant des nombres séparés par un espace.
Le programme doit imprimer une seule ligne - la liste résultante.