Там написано: " Начиная с Python 2.3, метод sort() гарантированно стабилен. Сортировка стабильна, если она гарантирует отсутствие изменения относительного порядка сравниваемых элементов — это полезно для сортировки за несколько проходов (например, сортировки по отделам). , затем по уровню зарплаты)»
То же самое упоминается в другой ссылке на Stackoverflow, где некоторые пользователи ссылаются на одни и те же документы и повторяют, что сортировка Python имеет стабильную сортировку: Сортировка списка Python по двум полям
Однако я не до конца понимаю эту концепцию. В приведенном ниже примере я ожидал, что результат каждого оператора печати будет одинаковым, но это не так.
Пример кода –
Код: Выделить всё
from operator import itemgetter
list1 = []
list1.append(('A','Z','50'))
list1.append(('A','Y','10'))
list1.append(('B','Z','10'))
list1.append(('B','Y','50'))
list1.sort(key = itemgetter(0,1,2))
print(list1)
list2 = []
list2.append(('A','Z','50'))
list2.append(('A','Y','10'))
list2.append(('B','Z','10'))
list2.append(('B','Y','50'))
list2.sort(key = itemgetter(0,1))
list2.sort(key = itemgetter(2))
print(list2)
[('A', 'Y', '10'), ('A', ' З', '50'), ('Б', 'Д', '50'), ('Б', 'З', '10')]
[(' А', 'Й', '10'), ('Б', 'З', '10'), ('A', 'Z', '50'), ('B', 'Y', '50')]
Мне интересно, почему я не получаете тех же результатов?
Подробнее здесь: https://stackoverflow.com/questions/793 ... table-sort
Мобильная версия