Python, возврат (return) из функции
Есть такой код, который принимает список с нулями, а на выходе должен выдать список с именами из другого списка (насколько хватит имен):
days = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
lessons_time = ['Вася', 'Петя', 'Коля', 'Саша', 'Игорь', 'Славик']
def get_fill_slots(i, lst, all_days):
lessons_times = lst
if len(lessons_times) == 0:
return all_days
else:
all_days[i] = lessons_times[0]
lessons_times.pop(0)
print(len(lessons_time), all_days)
i += 1
get_fill_slots(i, lessons_times, all_days)
a = get_fill_slots(0, lessons_time, days)
print(f'A: {a}')
Для наглядности я добавил принт на каждой итерации, который показывает, что объект all_days все время работы функции является списком, и что условие возврата функции выполняется, вот только возвращается мне не список, а None.
5 ['Вася', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
4 ['Вася', 'Петя', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
3 ['Вася', 'Петя', 'Коля', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
2 ['Вася', 'Петя', 'Коля', 'Саша', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
1 ['Вася', 'Петя', 'Коля', 'Саша', 'Игорь', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
0 ['Вася', 'Петя', 'Коля', 'Саша', 'Игорь', 'Славик', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
A: None
Кто может подсказать, почему так происходит?