Вы можете обойти эту проблему, если бы изменили свои списки до zip
с zip_longest
.
from itertools import zip_longest
s1, s2 = [1,2,3,4], [1, 2, 3]
res = [a+b for a, b in zip_longest(reversed(s1), reversed(s2), fillvalue=0)]
и, наконец, снова , чтобы получить желаемый результат:
res = res[::-1]
print(res) # [1, 3, 5, 7]
Основное преимущество этого метода, как говорит @CoryKramer в своем комментарии, заключается в том, что вам не нужно заранее знать, какой список самый длинный.