Это называется аннотация типов. В вашем случае она говорит, что функция принимает параметром int, по дефолту он равен -1 и возвращает она лист. Читать тут
Можно вытащить данные а потом запихнуть их в xls без всяких промежуточных csv. Смотрите в сторону питоновского модуля xlwt.
А если без питона - то я для подобных вещей использую libreoffice под линуксом. Очень удобно, пишем/рисуем в мастере запрос к БД и потом просто драг-н-дроп в экселевский файл.
Попробуйте https://checkio.org/ - там как раз лучшие решения и вообще решения других можно посмотреть только после того, как сам решишь. Но там по-английски всё.
На последней итерации вы вылезаете за строку, о чём вам открытым текстом и говорят.
Допустим, длина строки - 10. Последняя итерация - i=9. А j=i+1, то есть 10. И ваша конструкция s_zip[j] и вызывает ошибку.