Привет, у меня есть такой словарь
a = {1 : ["", 4],
2 : ["", 2],
3 : ["", 8],
4 : ["", 1],
5 : ["", 20],
6 : ["", 3],
7 : ["", 2]}
Я пытаюсь отсортировать это по a[key][1]
, то есть числам в списке, используя Insertion Sort Algorithm
.
Вот мой код для сортировки вставками:
def insertionSort(inventory):
indexingRange = range(1, len(inventory))
for i in indexingRange:
x = inventory[i][1]
try:
while inventory[i-1][1] > x and i > 0:
inventory[i-1], inventory[i] = inventory[i], inventory[i-1]
i = i - 1
except KeyError:
pass
return inventory
Однако, когда я запускаю этот код, все элементы but the last
в словаре сортируются.
Итак, мой вывод становится таким:
{1: ['', 1],
2: ['', 2],
3: ['', 3],
4: ['', 4],
5: ['', 8],
6: ['', 20],
7: ['', 2]}
Я понятия не имею, что я делаю неправильно. Я почти уверен, что это проблема индексации, но я не могу ее решить. Может кто-нибудь помочь, пожалуйста. Спасибо!