Проблема в использовании str.split (). Вы передаете ему явный разделитель,
>>> '1 2 3 4'.split(' ')
['1', '2', '3', '4']
Хотя это выглядит так, как вы хотите, в большинстве случаев это не так. Например, если два слова разделены двумя последовательными вхождениями separator
, пустое пространство между ними является частью выходных данных,
>>> '1 2 3 4'.split(' ').
['1', '2', '3', '', '4']
Аналогично, начальные и конечные пробелы имеют аналогичный эффект,
>>> '1 2 3 4 '.split(' ')
['1', '2', '3', '4', '']
Документация str.split гласит, что,
Если sep не указан или отсутствует, применяется другой алгоритм разбиения: выполняется последовательный пробел рассматриваются как один разделитель, (...)
Короче говоря: не пропустите разделитель,
>>> '1 2 3 4'.split()
['1', '2', '3', '4']
>>> '1 2 3 4'.split()
['1', '2', '3', '4']
>>> '1 2 3 4 '.split()
['1', '2', '3', '4']