lambda函数简介

简介: lambda函数简介

lambda函数简介

b = lambda x: 'Even' if x%2 == 0 else 'Odd'
b(9)
b(4)
'Even'
def return_sum(func, lst):
    result = 0
    for i in lst:
        # if vol satisfies func
        if func(i):
            result = result + i
    return result

lst = [11, 14, 21, 5, 78, 45, 29, 28]
x = lambda a: a%2 == 0
y = lambda a: a%2 != 0
z = lambda a: a%3 == 0
print(return_sum(x, lst))
print(return_sum(y, lst))
print(return_sum(z, lst))
120
111
144

Python内置高阶函数

# Map函数
"""
Map()函数会根据提供的函数对指定序列做映射。
Map()函数是一个接收两个参数的函数。第一个参数function以参数序列中的每一个元素调用function函数,第二个是
任何可迭代的序列数据类型。返回包含每次function函数返回值的新列表。
map(function, iterable, ....)
"""
arr = [2, 4, 5, 8]
arr1 = list(map(lambda x: x*x, arr))
print(arr1)
[4, 16, 25, 64]
students = [
    {
   'name': 'John Doe',
    'father': 'Robert Doe',
    'Address': '123 Hall street'
    },
    {
   
        'name': 'Rahul Garg',
        'father name': 'Kamal Garg',
        'Address': '3-Upper-Street corner'
    },
    {
   
        'name': 'Angela Steven',
        'father name': 'Jabob steven',
        'Address': 'Unknown'
    }
]
print(list(map(lambda student: student['name'], students)))
['John Doe', 'Rahul Garg', 'Angela Steven']

Filter函数()
"""
Filter()函数根据给定的特定条件过滤掉数据。即在函数中设定过滤条件,迭代元素,保留返回值为True的元素
map函数()对每个元素进行操作,而filter函数仅输出满足特定要求的元素

假设有一个水果名称列表,任务是只输出那些名称中包含字符“g”的名称
"""
fruits = ['mango', 'apple', 'orange', 'cherry', 'grapes']
print(list(filter(lambda fruit: 'g' in fruit, fruits)))

# filter(function or None, iterable) -- >filter object
# 返回一个迭代器, 为那些函数或项为真的可迭代项,如果函数为None,则返回为真的项
['mango', 'orange', 'grapes']
# Reduce函数
from functools import reduce
lst = [2, 4, 6, 8 , 10]
print(reduce(lambda x, y:x + y , lst))
30

方法一

# 如何快速找到多个字典的公共键
dl = [d1, d2, d3]  # d1, d2, d3为字典,目标找到所有字典的公共键
[k for k in dl[0] if all(map(lambda d: k in d, dl[1:]))]
example
dl = [{
   1:'life', 2: 'is'},
     {
   1: 'short', 3: 'i'},
     {
   1: 'use', 4: 'python'}]
[k for k in dl[0] if all(map(lambda d: k in d, dl[1:]))]
[1]
解析
dl = [{
   1:'life', 2: 'is'},
     {
   1: 'short', 3: 'i'},
     {
   1: 'use', 4: 'python'}]
# 列表表达式遍历dl中第一个字典中的键
[k for k in dl[0]]
# [1, 2]
# lambda匿名函数判断字典中的键,即k值是否在其余字典中
list(map(lambda d: 1 in d, dl[1:]))
# [True, True]
list(map(lambda d: 2 in d, d1[1:]))
# [False, False]
# 列表表达式条件为上述结果([True, True])全为True, 则输出对应的k值
# 1
[False, False]

方法二

# 利用集合(set)的交集操作
from functools import reduce
# reduce(lambda a, b: a* b, range(1, 11)) # 101
reduce(lambda a, b:a & b, map(dict.keys, dl))
om/u_14940497/10469827
{
   1}
相关文章
|
5月前
|
Python
Python教程:一文了解如何使用Lambda 表达式和 filter函数实现过滤器
在 Python 中,Lambda 表达式是一种匿名函数,也就是没有名称的函数。它允许您快速定义简单的单行函数,通常用于函数式编程中的一些场景,例如在高阶函数中作为参数传递。
212 2
|
6月前
|
C++ 计算机视觉 Python
【学习什锦】python中的匿名函数(lambda)与max、key参数
【学习什锦】python中的匿名函数(lambda)与max、key参数
49 3
|
6月前
|
Python
请解释Python中的lambda函数是什么?并举例说明其用法。
请解释Python中的lambda函数是什么?并举例说明其用法。
44 2
Python的函数式编程指南:Lambda、Map和Filter的应用
Python是一门多范式的编程语言,允许你以不同的方式编写代码,包括面向对象编程、过程式编程和函数式编程。函数式编程是一种强大的编程范式,它强调不可变性、纯函数和高阶函数的使用。本文将引导你了解Python中函数式编程的一些核心概念和技巧,特别是Lambda、Map和Filter的应用。
|
Python
python基础方法与函数使用(format函数、lambda函数)
python基础方法与函数使用(format函数、lambda函数)
151 0
|
算法 编译器
【lambda函数】lambda()函数
【lambda函数】lambda()函数
|
测试技术 Python
Python进阶语法之lambda函数
Python进阶语法之lambda函数
|
Java 开发者
lambda让代码更优雅
Lambda表达式是Java 8中引入的一个重要特性,它允许开发者以更简洁的方式编写匿名函数,使得代码更加紧凑和易读。Lambda表达式是函数式编程的一种体现,可以将函数作为方法的参数传递,并且可以使用更简洁的语法实现函数式接口(只有一个抽象方法的接口)的实例化。Lambda表达式的语法形式为 (参数列表) -> {表达式或语句块}。
80 0
|
Java Scala
scala 匿名函数的用法实操
1. => 什么意思 => 匿名函数(Anonymous Functions),表示创建一个函数实例。 比如:(x: Int) => x + 1 和如下JAVA方法表示的含义一样:
121 0
|
Python
【Python高级语法】——匿名函数(lambda)
匿名函数lambda:顾名思义,没有名字的函数,可以将其赋值给一个变量。
117 0
【Python高级语法】——匿名函数(lambda)