Я пытаюсь реализовать quicksort в python. Вот мой код:Python не может объединить списки, потому что они включают элементы nonetype
def quicksort(numbers):
less = []
is_pivot = []
larger = []
if len(numbers) > 1:
pivot = numbers[0]
for x in numbers:
if x < pivot:
less.append(x)
elif x == pivot:
is_pivot.append(x)
else:
larger.append(x)
sorted_list = quicksort(less) + is_pivot + quicksort(larger)
print(sorted_list)
else:
print(numbers)
Это дает мне следующее сообщение об ошибке:
File "sortingalgorithms.py", line 101, in <module>
quicksort(numbers)
File "sortingalgorithms.py", line 66, in quicksort
sorted_list = quicksort(less) + is_pivot + quicksort(larger)
File "sortingalgorithms.py", line 66, in quicksort
sorted_list = quicksort(less) + is_pivot + quicksort(larger)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'list'
Когда я пытаюсь напечатать списки без конкатенации их я получаю следующий вывод для списка с номерами 3, 2,1
[1.0]
[]
[None, [2.0], None]
[]
[None, [3.0], None]
Откуда берутся элементы nonetype, и как я могу решить свою проблему? Благодаря
У вас нет 'return' заявление, так что ваша функция возвращает' None' –