Вы не сказали, что эта функция должна делать, поэтому я предполагаю, что «inventedfunction» означает «перевернутую функцию». Даже если это неверно, идея такая же. Если это не так, или вы не понимаете, тогда отправьте сообщение с дополнительной информацией.
Вы не поймаете никаких возвратов и ничего не возвращаете (Нет), если len (list2)! = 1. Вам также понадобится создать второй список, чтобы удерживать числа, удаленные из списка, отправленного к функции и возвратить обновленный список также в соответствии с тем, как ваш код структурирован.
def inventedfunction(list1, new_list=[]):
## at the least add print statements so you know what is happening
print new_list, "----->", list1
list2=list1[:-1]
new_list.append(list1[-1]) ## append item removed from list1 --> list2
if len(list2):
new_list, list2=inventedfunction(list2)
return new_list, list2 ## both updated lists returned
print inventedfunction([1, 2, 3, 4, 5])
Потому что 'inventedfunction (list2)' означает 'вызов изобретенной функции на list2, но отбросить его результат'. Я думаю, вам нужно «return inventedfunction (list2)» – Alik
Как я мог избежать этой проблемы, предполагая, что мне нужно использовать рекурсию в этом примере? – user2246905