Я пишу этот код прямо из книги, но получаю эту ошибку. Я попытался назначить переменные для быстрой сортировки меньше, больше и [поворот], а затем попытался добавить их, но это все равно не работает. вот код и сообщение об ошибке: «TypeError: неподдерживаемые типы операндов для +:« NoneType »и« список »»
def quicksort(array):
if len(array) < 2:
return
else:
pivot = array[0] #Recursive case
less = [i for i in array[1:] if i <= pivot]
greater = [i for i in array[1:] if i > pivot]
return quicksort(less) + [pivot] + quicksort(greater)
print(quicksort([10, 5, 2, 3]))
Использование return
без какого-либо значения вернет None
. Это, вероятно, не то, что вы хотите сделать.
pivot , sort и greator не являются строкой, вы не можете использовать этот формат и + , вы можете использовать ( , ) вместо + . вернуть быструю сортировку (меньше), [поворот], быструю сортировку (больше)
def quicksort(array):
if len(array) < 2:
return array
else:
pivot = array[0] #Recursive case
less = [i for i in array[1:] if i <= pivot]
greater = [i for i in array[1:] if i > pivot]
return quicksort(less) + [pivot] + quicksort(greater)
print(quicksort([10, 5, 2, 3]))
Вам нужно вернуть массив, если len меньше двух.
Подсказка: что вернет эта функция, если
len(array) < 2
?