Python основа: лямбда анонимная функция

формат

лямбда argument1, argument2, ... argumentN: выражение 

квадрат = лямбда х: х ** 2
 печати (квадрат (2))

И разница между регулярной функцией

  Анонимные функции и лямбда обычные функции, являются функцией Возвращаемый объект (объект функции)
 
  лямбда выражение (выражение), это не утверждение (заявление). Выражения могут быть оценены, аналогично коду «формулы», и заявление было полное некоторые функции исполняемого кода.
  Таким образом, лямбда может использоваться внутри списка:
л = [( лямбда - х: х ** 2) (х) для х в диапазоне (10 )]
 печать (список (л)) 
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81 ]
  Кроме того, вы можете в качестве параметров
= L [(. 1, 20), (9, 10.), (2, -1 (3, 0.) )] 
L.sort (ключ = лямбда Х: Х [1.]) # По Список предшественников второй Мета сортировка элементы 
печати (L) , 
выходной 
[( 2, -1), (3, 0), (9, 10), (1, 20)]
  Тело лямбда-выражение является простой одной строкой, и не может быть распространено на блок многострочных.

Код может быть упрощен с помощью лямбды

квадрат = отображение ( лямбда - х: х ** 2, [1, 2, 3, 4, 5 ])
 печать (список ( в квадрате))

  Над этим кодом, если не обычный лямбда-выражения и функции:

Защиту squared2 (х):
     возвращение х [1] , если isinstance (х, кортеж) еще х ** 2 

квадрат = карта (squared2, [1, 2, 3, 4, 5, (1,3 )])
 печать (список ( в квадрате))

Python Функциональное программирование

  Функция программирования Python имеет три основные функции карты (), уменьшить (), фильтр ()

  отображение (функция, итерируемый [, iterable2])

  карта обход итерируемые взяты элементы последовательно передаваемые в функции функции параметра, например: каждый элемент увеличиваются в два раза

л = [1, 2, 3, 4, 5 ] 
new_list = отображение ( лямбда - х: х * 2, л) # [2, 4, 6, 8, 10]

  фильтр (функция, итерация)

  и карта фильтра, как итерируемый обход, и функция последовательно проходит, за исключением того, что каждая функция фильтра определяет результат является истинным или ложным, результат представляет собой композиция из списка элементов возвращает истину

  Пример: Возвращает список всех четных

л = [1, 2, 3, 4, 5 ] 
new_list = фильтр ( лямбда - х:% 2 == 0, л) # [2, 4]

  уменьшить (функция, итерируемый [, инициализатор])

  В котором целевая функция представляет собой функцию, которая имеет два заранее определенные параметры, выраженные в Iterable каждого элемента и результатах последнего вызова, используя функцию вычисления, окончательные возвращает единственное значение.

  Источник сотрудничать уменьшить понять:

Защита уменьшайте (функцию, итерация, инициализатор = None): 
    это = ИТЭР (итерация)
     , если инициализатор не None:
         попробуйте : 
            инициализатор = следующий (это)
         , за исключением StopIteration:
             поднять TypeError ( « уменьшить () пустую последовательность, без начального значения » ) 
    accum_value = инициализатор
     для й в нем: 
        accum_value = функция (accum_value, х)
     возвращение accum_value

  Пример накопленных элементов в списке

от functools импорта уменьшить 
л = [1,2,3,4,5 ] 
результат = уменьшить ( лямбда х, у: х + у, л)
 печать (результат) # 15 
результат = уменьшить ( лямбда х, у: х + у, л, 10 )
 для печати (результат) # 25

вопросов

  Словарь д = { 'Mike': 10, 'люси': 2 'бен': 30} сортируются в порядке убывания значения

d = { ' Mike ' : 10, ' люси ' : 2, ' бен ' : 30 } 
d = упорядоченные (d.Items (), ключ = лямбда - х: х [1], обратный = TRUE) # [( 'бен », 30), ( 'Mike', 10), ( 'Lucy', 2)] 
d = ДИКТ (г)
 печати (г)

 Ссылка:

«Основные технологии и практический Python» Geek Time

 

рекомендация

отwww.cnblogs.com/xiaoguanqiu/p/10958623.html