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}
相关文章
|
4月前
|
Java
·Lambda的基本使用介绍
这篇文章详细介绍了Java中Lambda表达式的基本概念和使用方法,包括Lambda的基本语法、如何使用Lambda表达式实现接口方法、函数引用以及构造方法的引用,并通过实例代码展示了Lambda表达式的简洁性和实用性。
·Lambda的基本使用介绍
|
6月前
|
Python
Python教程:一文了解如何使用Lambda 表达式和 filter函数实现过滤器
在 Python 中,Lambda 表达式是一种匿名函数,也就是没有名称的函数。它允许您快速定义简单的单行函数,通常用于函数式编程中的一些场景,例如在高阶函数中作为参数传递。
257 2
Python的函数式编程指南:Lambda、Map和Filter的应用
Python是一门多范式的编程语言,允许你以不同的方式编写代码,包括面向对象编程、过程式编程和函数式编程。函数式编程是一种强大的编程范式,它强调不可变性、纯函数和高阶函数的使用。本文将引导你了解Python中函数式编程的一些核心概念和技巧,特别是Lambda、Map和Filter的应用。
|
Python
python基础方法与函数使用(format函数、lambda函数)
python基础方法与函数使用(format函数、lambda函数)
156 0
|
算法 编译器
【lambda函数】lambda()函数
【lambda函数】lambda()函数
|
Java 开发者
lambda让代码更优雅
Lambda表达式是Java 8中引入的一个重要特性,它允许开发者以更简洁的方式编写匿名函数,使得代码更加紧凑和易读。Lambda表达式是函数式编程的一种体现,可以将函数作为方法的参数传递,并且可以使用更简洁的语法实现函数式接口(只有一个抽象方法的接口)的实例化。Lambda表达式的语法形式为 (参数列表) -> {表达式或语句块}。
86 0
|
JSON 监控 JavaScript
|
Python
Python编程:lambda替代品-operator模块
代码中不是很推荐使用 lambda表达式 取而代之的是 operator模块,提供了很多简单函数实现
69 0
|
设计模式 JavaScript 前端开发
深入探讨 Lambda 表达式(下)
说明: > 由于 Lambda 表达式涉及的周边知识点实在太多,因此拆分为上、下两篇文章讲解。 > > 本篇为下篇,上篇请点击:[深入探讨 Lambda 表达式(上)](https://www.atatech.org/articles/159525) 目录介绍: ![1.png](https://ata2-img.cn-hangzhou.oss-pub.aliyun-inc.co
792 0

热门文章

最新文章