как вернуть значения лямбда

79
8

В учебнике я вижу часть кода, который я проверил, работает: https://wiki.python.org/moin/HowTo/Sorting

>>> student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
>>> sorted(student_tuples, key=lambda student: student[2]) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

Почему ученик [2], известный python, ссылается на третий элемент каждого кортежа? Почему он не попытался отсортировать третий кортеж, а не третий элемент каждого кортежа?

спросил(а) 2021-01-19T16:27:53+03:00 9 месяцев назад
1
Решение
79

Поскольку sorted функция отправляет элементы своего итерационного аргумента в лямбда-функцию, и в этом случае кортежи будут отправляться в lambda.

key указывает функцию одного аргумента, которая используется для извлечения ключа сравнения из каждого элемента списка: key = str.lower. Значение по умолчанию - None (сравнить элементы напрямую).

ответил(а) 2021-01-19T16:27:53+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема