У меня есть список списков, которые я хочу отсортировать на основе первого элемента списка в порядке возрастания. Если первые элементы списка одинаковы, они должны быть отсортированы на основе второго элемента.Сортировка списка с помощью сортировки выбора
До сих пор я мог сортировать, основываясь только на первых элементах списка. Я использовал сортировку вставки для их сортировки. Как отсортировать список на основе второго элемента, если первые элементы одинаковы?
def sort_list():
# An example of the list to be sorted
original_list = [['Glenn', 'Stevens'],
['Phil', 'Wayne'],
['Peter', 'Martin'],
['Phil', 'Turville'],
['Chris', 'Turville']]
sorted_list = list(original_list)
for index in range(1, len(sorted_list)):
pos = index
while pos > 0 and sorted_list[pos - 1][0] > sorted_list[pos][0]:
sorted_list[pos-1], sorted_list[pos] = sorted_list[pos], sorted_list[pos-1]
pos -= 1
return sorted_list
гм ... встроенный 'list.sort' уже делает это. Используйте 'sorted', если вы не хотите уничтожать' original_list' – inspectorG4dget
. Функция должна быть реализацией сортировки вставки, поэтому я не могу использовать метод list.sort. Мне также нужен исходный список без изменений. – SUB0DH
'sorted_list = list (original_list)' лучше написано как 'sorted_list = original_list [:]' –