как будет использоваться лямбда-функция при сортировке

#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. Возрастание по 1-му ключу и
  2. Убывание по 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 Это отвечает на ваш вопрос? Если это так, вы можете подумать о том, чтобы принять его.