Kombinieren von zip und enumerate

Manchmal möchten wir die Indizes für gepaarte Listen kennen. In diesem Fall können wir enumerate() über zip() verwenden. Es ist jedoch wichtig zu verstehen, was jede dieser Funktionen tut. zip gibt ein Tupel für jedes Elementpaar von Listenelementen zurück. enumerate gibt ein Tupel für jedes Element einer Liste zurück. Daher wird die resultierende Struktur ein Tupel von Tupeln sein:
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))]

# Daher müssen wir über die Elemente mit Tupeln iterieren:
for i, (item1, item2) in enumerate(zip(a, b)):
    print(f'Index: {i} => a[i]={item1} und b[i]={item2}')

# Index: 0 => a[i]=1 und b[i]=5
# Index: 1 => a[i]=2 und b[i]=6
# Index: 2 => a[i]=3 und b[i]=7
# Index: 3 => a[i]=4 und b[i]=8
Beachte, wie item1 und item2 im for-Schleife zu einem Tupel zusammengefasst werden.

Herausforderung

Gegeben sind 3 Listen, jede in einer separaten Zeile. Du sollst eine neue Liste erstellen, die die Summe der Elemente der 3 Listen darstellt, wobei die Werte an ungeraden Positionen übersprungen werden (die Indizierung beginnt bei 0).
Die Eingabe enthält 3 Zeilen – jede enthält Zahlen, die durch ein Leerzeichen getrennt sind.
Das Programm soll eine einzelne Zeile ausgeben – die resultierende Liste.
Input
Output
1 2 3 4 5 6 7 8 9 10 11 12
15 21
Kannst du das in einer einzigen Zeile lösen 😎?
 

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