Я думаю, что все знают, что означает анонимность. Иногда нам не нужно называть функцию при написании программы. В настоящее время мы можем использовать лямбда-выражения для использования анонимных функций в Python.
Давайте на примере познакомим вас с простым использованием лямбда-функции . Переменная m — это введенное нами значение. Нам нужно использовать анонимную функцию для возврата суммы квадратов m. значение равно 4.
Код выглядит следующим образом:
m=int(input('Пожалуйста, введите число:'))#m — входное значение a=lambdax:x*x#Используйте переменную a для формирования выражения print('Возвращаемое значение:',a(m) )
Результат:
Пожалуйста, введите число: 6. Возвращаемое значение: 36.
Давайте посмотрим на его структуру на рисунке ниже:
Давайте воспользуемся анонимной функцией на примере:
m=int(input('Пожалуйста, введите число:'))#m — входное значение a=lambdax:x+10*10+x*xprint('Возвращаемое значение:',a(m))
Результат:
Пожалуйста, введите число: 5. Возвращаемое значение: 130.
Из двух приведенных выше примеров мы можем понять, что лямбда-выражение эквивалентно сжатию функции в одну строку кода, а затем непосредственному вызову функции через определение переменной. Этот метод может упростить наш код.
Мы также можем использовать анонимные функции в последовательностях. Использование анонимных функций может помочь нам быстро фильтровать данные. См. следующий пример:
Известно, что список — это [1,4,6,9,12,23,25,28,36,38,41,56,63,77,88,99], нам нужно вернуть в нем четные числа и сохраните их в списке среди.
Мы можем использовать функцию фильтра для фильтрации.
Код выглядит следующим образом:
my_list=[1,4,6,9,12,23,25,28,36,38,41,56,63,77,88,99]print(list(filter(lambdax:x%2==0, мой_список)))
Результат:
[4,6,12,28,36,38,56,88]
Мы анализируем это выражение изнутри наружу. Первый объект в функции filter() — это наш метод фильтрации, а второй — объект, который мы хотим фильтровать. Затем мы сохраняем эти данные в списке с помощью функции list(). . и, наконец, распечатайте его. Этот метод поможет нам быстро интегрировать данные.
Мы также можем формулировать правила с помощью анонимных функций при сортировке.
Во-первых, мы знаем, что набор списков — это [('Кортеж A',15,33), ('Кортеж B',25,26), ('Кортеж C',7,7)]. элемент содержит имя каждого кортежа, а также минимальное и максимальное значения. Нам нужно отсортировать список по разнице между максимальным и минимальным значениями кортежа каждого человека. См. следующий код:
my_list=[('Кортеж A',15,33),('Кортеж B',25,26),('Кортеж C',7,7)]my_list.sort(key=lambdax:x[2 ]-x [1])#Используйте ключевое слово, чтобы представить метод сортировки. Метод сортировки основан на разнице между третьим элементом и вторым элементом. Соответствующие индексы: 2 и 1print(my_list).
Выходная структура:
[('Кортеж C',7,7),('Кортеж B',25,26),('Кортеж A',15,33)]
Сначала мы можем выполнить простой расчет. Их разности равны 18, 1 и 0 соответственно, поэтому их порядок должен быть C, B и A. Возвращаемый результат x[2]-x[1] в лямбда-выражении мы получаем. их разницу, а затем отсортируйте их в соответствии с разницей.
Анонимные функции особенно важны при фильтрации данных. Они могут быстро помочь нам решить сложные и громоздкие проблемы с данными. В то же время они могут оптимизировать наш код и сделать его более кратким. На этом мы остановимся в следующей главе. В разделе «Функции» мы изучим три основные функции.