TypeError: неподдерживаемые типы операндов для +: «NoneType» и «список»

Я пишу этот код прямо из книги, но получаю эту ошибку. Я попытался назначить переменные для быстрой сортировки меньше, больше и [поворот], а затем попытался добавить их, но это все равно не работает. вот код и сообщение об ошибке: «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]))

Подсказка: что вернет эта функция, если len(array) < 2?

ForceBru 25.12.2020 14:48

Использование return без какого-либо значения вернет None. Это, вероятно, не то, что вы хотите сделать.

Shaido 25.12.2020 14:50

pivot , sort и greator не являются строкой, вы не можете использовать этот формат и + , вы можете использовать ( , ) вместо + . вернуть быструю сортировку (меньше), [поворот], быструю сортировку (больше)

Farshad Javid 25.12.2020 15:09
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
3
981
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
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 меньше двух.

Другие вопросы по теме