Сортировка списка с элементами int и str - PullRequest
0 голосов
/ 10 ноября 2019

Итак, в моем классе профессор дал нам этот код сортировки на основе вставок, но он мне нужен для сортировки списков, содержащих цифры и текст.

Я уже пробовал использовать условия isinstance if, но, похоже,проблема в цикле while

def insertion_sort(vector):
    print(vector)
    for i in range(1,len(vector)):
        actual=vector[i]
        j=i
        while j>0 and actual<vector[j-1]: #This is where the problem seems
            vector[j]=vector[j-1]         #to be.
            j=j-1
        vector[j]=actual
    return vector

Это сообщение об ошибке вывода:

Traceback (most recent call last):
  File "F:\Python\sortactivity.py", line 53, in <module>
    print(insertion_sort(text))
  File "F:\Python\sort.py", line 9, in insertion_sort
    while j>0 and actual<vector[j-1]:
TypeError: '<' not supported between instances of 'int' and 'str'

Список тестирования, который у меня есть:

lst=['s9','d5',9,5,1,24,12,'test',21]
...