Так что это просто упражнение, которое я делаю для удовольствия на codewars.com. Дело в том, чтобы взять строку и разделить ее, взяв последний символ и добавив его в строку, взяв первый символ и добавив его в другую строку, пока у вас не будет 1 (для строки с нечетным числом букв) или 0 (для строки с четным числом букв). Вот вам ссылка на challenge, если вам интересно.Pop from empty list error ТОЛЬКО на списках с четным количеством элементов
def pop_shift(test):
firstSol = []
secondSol = []
testList = list(test)
while len(testList) != 1:
firstSol.append(testList.pop())
secondSol.append(testList.pop(0))
return [''.join(firstSol), ''.join(secondSol), ''.join(testList)]
Мой код дает мне правильный результат, если строка имеет нечетное количество символов:
['erehtse', 'example', 't']
Но с четным количеством символов я получаю эту ошибку:
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
pop_shift("egrets")
File "<pyshell#35>", line 6, in pop_shift
firstSol.append(testList.pop())
IndexError: pop from empty list
Я просмотрел кучу вопросов, связанных с методом pop(), но ничего не звучало очень похоже на это. Я также тестировал это с помощью множества строк и изучал документацию по методу pop. Должно быть что-то, что мне не хватает. Любые указатели оцениваются. Это также мой первый вопрос, поэтому, если есть что-то еще, что вы хотели бы видеть, сообщите мне.
Это была бы хорошая возможность научиться использовать отладчик. – JETM