Иногда нам может понадобиться знать индексы для объединённых списков. В таком случае мы можем использовать enumerate() поверх zip(). Однако важно понимать, что делает каждая из этих функций. Zip возвращает кортеж для каждой пары элементов списков. Enumerate возвращает кортеж для каждого элемента списка. Таким образом, полученная структура будет кортежем кортежей:
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
Обратите внимание, как item1 и item2 объединяются в кортеж в цикле for.
Задача
Даны 3 списка, каждый на отдельной строке. Вам нужно создать новый список, который будет представлять сумму элементов этих 3 списков, пропуская значения на нечетных позициях (нумерация начинается с 0).
Ввод содержит 3 строки — в каждой находятся числа, разделенные пробелом.
Программа должна вывести одну строку — полученный список.