Combinare zip ed enumerate

A volte potremmo voler conoscere gli indici delle liste zip. In tal caso, possiamo usare enumerate() sopra zip(). Tuttavia, è essenziale capire cosa fa ciascuna di queste funzioni. Zip restituisce una tupla per ogni coppia di elementi delle liste. Enumerate restituisce una tupla per ogni elemento di una lista. Pertanto, la struttura risultante sarà una tupla di tuple:
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))]

# Pertanto, dobbiamo iterare sugli elementi con tuple:
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
Notate come item1 e item2 sono raggruppati per formare una tupla nel ciclo for.

Sfida

Date 3 liste, ciascuna su una riga separata, vi viene chiesto di creare una nuova lista che rappresenti la somma degli elementi delle 3 liste, saltando però i valori nelle posizioni dispari (l'indicizzazione inizia da 0).
L'input contiene 3 righe - ciascuna contiene numeri separati da uno spazio.
Il programma deve stampare una singola riga - la lista risultante.
Input
Output
1 2 3 4 5 6 7 8 9 10 11 12
15 21
Riesci a risolverlo in una sola riga 😎?
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue