Я пытаюсь отсортировать этот список кортежей после числа во втором индексе, используя алгоритм сортировки слиянием, но я очень не уверен, как это сделать.
Это список кортежей, которые я пытаясь отсортировать:
list_of_tuples = [('Birds of Prey', 97.1),
('Dolittle', 175.0),
('The Gentlemen', 7.0),
('Falling', 22.0)]
И я могу реализовать общий алгоритм сортировки слиянием, но я не могу сделать это так, чтобы сортировать после числа в кортеже по второму индексу.
Это моя реализация общей сортировки слиянием:
def merge_sort(arr):
if len(arr) > 1:
mid = len(arr) // 2
left = arr[:mid]
right = arr[mid:]
merge_sort(left)
merge_sort(right)
i = j = k = 0
while i < len(left) and j < len(right):
if left[i] < right[j]:
arr[k] = left[i]
i += 1
else:
arr[k] = right[j]
j += 1
k += 1
while i < len(left):
arr[k] = left[i]
i += 1
k += 1
while j < len(right):
arr[k] = right[j]
j += 1
k += 1
return arr
Как бы я справился с этой задачей?
Предпочтительный ответ состоит в том, что он возвращает кортеж с наибольшим числом в конец, поэтому результат будет ('Dolittle', 175.0)
.