#python-3.x #sorting #lambda
#python-3.x #сортировка #лямбда
Вопрос:
I.sort(key=lambda x: (x[0],-x[1]))
предположим, у меня есть I=[[1,2],[1,4],[3,4]]
, тогда как будет сортироваться эта лямбда-функция, и кто-нибудь может объяснить мне, как это будет выполняться шаг за шагом
Комментарии:
1. После сортировки с использованием этой лямбда-функции я получу=[[1,4],[1,2],[3,4]]. Но вы говорите, что ваша сортировка ничего не вернет.
2. Он ничего не вернет, но изменит существующий список правильно. Я просто хотел знать, как она будет изменена.
Ответ №1:
Вы имеете в виду сложный поиск по нескольким ключам (1-й И 2-й ключи в вашем случае):
- Возрастание по 1-му ключу и
- Убывание по 2-му ключу.
Это работает для групп со связями.
Происходящее можно проиллюстрировать следующим примером:
I=[[1,2],[1,4],[3,4]]
func = lambda x: (x[0])
I.sort(key=func)
print(" Sort by 1st key:",I)
I=[[1,2],[1,4],[3,4]]
func = lambda x: (x[0], -x[1])
I.sort(key=func)
print("Sort by 1st AND 2nd key:",I)
Sort by 1st key: [[1, 2], [1, 4], [3, 4]]
Sort by 1st AND 2nd key: [[1, 4], [1, 2], [3, 4]]
Комментарии:
1. @Manjunath Это отвечает на ваш вопрос? Если это так, вы можете подумать о том, чтобы принять его.