@star3points
Любитель

Как отсортировать список списков без изменения изначального порядка элементов?

a = [[1, 'l'], [3, 'r'], [2, 'l'], [4, 'r'], [1, 'l'], [8, 'r'], [2, 'l'], [8, 'r'], [0, 'p'], [1, 'p'], [2, 'p'], [4, 'p'], [6, 'p'], [8, 'p'], [9, 'p']]
a.sort()
print(a)
[[0, 'p'], [1, 'l'], [1, 'l'], [1, 'p'], [2, 'l'], [2, 'l'], [2, 'p'], [3, 'r'], [4, 'p'], [4, 'r'], [6, 'p'], [8, 'p'], [8, 'r'], [8, 'r'], [9, 'p']]
Почему в результате [4, 'p'] левее [4, 'r']?
и как сохранить исходный порядок для одинаковых элементов?
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
aRegius
@aRegius
Python Enthusiast
Добавьте именованный аргумент key - и ваш порядок сохранится:
a.sort(key=lambda x: x[0])
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому, что 'p' < 'r' == True. Вы определитесь, вам таки надо отсортировать или сохранить исходный порядок.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы