sorted()
используется для предоставления кастомной функции сортировки, которая извлекает ключ для сравнения из каждого элемента последовательности. Аргумент key
функции sorted()
принимает лямбда-функцию, которая определяет это правило. Например, для сортировки списка кортежей по второму элементу, можно использовать sorted(list_of_tuples, key=lambda x: x[1])
.
Лямбда-функция в Python используется с функцией sorted()
для определения кастомной логики сортировки. Функция sorted()
принимает аргумент key
, который ожидает функцию. Эта функция будет применена к каждому элементу списка (или итерируемого объекта), и результат этого применения будет использован в качестве ключа для сравнения при сортировке.
Лямбда-функция, будучи анонимной и краткой, идеально подходит для предоставления этой логики "на месте", без необходимости определять отдельную, именованную функцию. Она позволяет выразить простую логику сортировки непосредственно в вызове sorted()
.
Пример: Сортировка списка кортежей по второму элементу:
data = [(1, 'b'), (3, 'a'), (2, 'c')]
sorted_data = sorted(data, key=lambda item: item[1])
print(sorted_data) # Output: [(3, 'a'), (1, 'b'), (2, 'c')]
В этом примере лямбда-функция lambda item: item[1]
берет кортеж item
и возвращает его второй элемент (индекс 1). sorted()
использует эти вторые элементы для сравнения кортежей, сортируя их по алфавиту во втором столбце.
Другой пример: Сортировка списка строк по длине:
strings = ["apple", "banana", "kiwi", "orange"]
sorted_strings = sorted(strings, key=lambda s: len(s))
print(sorted_strings) # Output: ['kiwi', 'apple', 'banana', 'orange']
Здесь лямбда-функция lambda s: len(s)
возвращает длину строки s
. sorted()
использует эти длины для сравнения строк, сортируя их по возрастанию длины.
Преимущества использования лямбда-функций с sorted()
:
sorted()
.Важно: Для более сложной логики сортировки, когда требуется выполнить несколько операций или условных проверок, лучше использовать обычную, именованную функцию для повышения читаемости и поддерживаемости кода.