当前位置: 首页 > article >正文

【Lambda基础】Python Lambda 函数的 9 种玩法

Lambda基础

  • 1.简单的算术运算:
  • 2.对元组列表进行排序:
  • 3. 过滤列表:
  • 4.将函数映射到列表:
  • 5.使用 Lambda、 map 和 filter:
  • 6.在关键函数中使用 Lambda:
  • 7. 动态创建函数:
  • 8.在列表推导中使用 Lambda:
  • 9.高阶函数中的 Lambda:

1.简单的算术运算:

add = lambda x, y: x + y
subtract = lambda x, y: x - y
multiply = lambda x, y: x * y
divide = lambda x, y: x / y

print(add(3, 5))        
print(subtract(8, 3))    
print(multiply(4, 6))   
print(divide(10, 2))

输出结果:

8
5
24
5.0

2.对元组列表进行排序:

pairs = [(1, 5), (2, 3), (4, 1), (3, 8)]
sorted_pairs = sorted(pairs, key=lambda x: x[1])
print(sorted_pairs)  

输出结果:

[(4, 1), (2, 3), (1, 5), (3, 8)]

3. 过滤列表:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  

输出结果:

[2, 4, 6, 8]

4.将函数映射到列表:

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers)  

输出结果:

[1, 4, 9, 16, 25]

5.使用 Lambda、 map 和 filter:

# 使用 map 将列表中的每个元素加倍

numbers = [1, 2, 3, 4, 5]
doubled_numbers = list(map(lambda x: x * 2, numbers))
print(doubled_numbers)  

# 使用 filter 过滤奇数

odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(odd_numbers)

输出结果:

[2, 4, 6, 8, 10]
[1, 3, 5]

6.在关键函数中使用 Lambda:

# 根据每个字符串的长度对字符串列表进行排序
words = ['apple', 'banana', 'kiwi', 'orange']
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)  

输出结果:

['kiwi', 'apple', 'banana', 'orange']

7. 动态创建函数:

# 使用 lambda 函数创建一个简单的计算器
calculator = {
    'add': lambda x, y: x + y,
    'subtract': lambda x, y: x - y,
    'multiply': lambda x, y: x * y,
    'divide': lambda x, y: x / y,
}

result = calculator['multiply'](4, 5)
print(result)  

输出结果:

20

8.在列表推导中使用 Lambda:

# 使用列表推导对列表中每个元素求平方
numbers = [1, 2, 3, 4, 5]
squared_numbers = [(lambda x: x**2)(x) for x in numbers]
print(squared_numbers) 
#clcoding.com

输出结果:

[1, 4, 9, 16, 25]

9.高阶函数中的 Lambda:

# 以函数作为参数的高阶函数
def  operand_on_numbers ( x, y, operation ): 
    return operation(x, y) 

# 使用 lambda 函数作为参数
result = operand_on_numbers( 10 , 5 , lambda x, y: x / y) 
print(result)

输出结果:

2.0

http://www.kler.cn/a/406576.html

相关文章:

  • 如何构建高效的接口自动化测试框架?
  • 【Redis】基于Redis实现秒杀功能
  • Python操作neo4j库py2neo使用之py2neo 删除及事务相关操作(三)
  • 深入理解TensorFlow中的形状处理函数
  • 环境背景文本到语音转换
  • SQL注入靶场演练
  • 【1.2 Getting Started--->Installation Guide】
  • Cmakelist.txt之Linux-redis配置
  • Java、Android引用类型
  • rust中解决DPI-1047: Cannot locate a 64-bit Oracle Client library问题
  • C++ String
  • 【嵌入式】手把手教你入门STM32的GPIO:使用GPIO输入
  • SpringBoot入门准备——Maven的使用
  • Web3与智能合约:区块链技术下的数字信任体系
  • Python世界:力扣题解875,珂珂爱吃香蕉,中等
  • Python操作neo4j库py2neo使用之py2neo 删除及事务相关操作(三)
  • uniapp跨域问题解决方案
  • 博客文章怎么设计分类与标签
  • Java SE 与 Java EE:基础与进阶的探索之旅
  • PAL(Program-Aided Language Model)
  • android 使用MediaPlayer实现音乐播放--获取音乐数据
  • Spring Boot 3.0废弃了JavaEE,改用了Jakarta EE
  • Linux云平台Oracle 12c安装与数据迁移
  • 大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
  • el-tree扩展vue-easy-tree虚拟树的使用(解决页面卡顿)
  • 力扣 LeetCode 701. 二叉搜索树中的插入操作(Day10:二叉树)