Python函数式编程lambda、map与filter的实战应用
```python
# Python函数式编程实战:lambda、map与filter的应用
# 示例1:lambda表达式的基本使用
# 定义简单的数学运算
add = lambda x, y: x + y
square = lambda x: x2
is_even = lambda x: x % 2 == 0
print(lambda表达式示例:)
print(f5 + 3 = {add(5, 3)})
print(f4的平方 = {square(4)})
print(f6是偶数吗?{is_even(6)})
# 示例2:map函数的应用
# 将列表中的每个元素进行转换
numbers = [1, 2, 3, 4, 5]
# 使用map将每个数字平方
squared_numbers = list(map(lambda x: x2, numbers))
print(f map函数示例 - 平方运算:{squared_numbers})
# 将字符串列表转换为大写
words = ['hello', 'world', 'python']
uppercase_words = list(map(str.upper, words))
print(fmap函数示例 - 转大写:{uppercase_words})
# 示例3:filter函数的应用
# 筛选出符合条件的元素
numbers = range(1, 11)
# 筛选偶数
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(f filter函数示例 - 偶数筛选:{even_numbers})
# 筛选长度大于5的字符串
words = ['apple', 'banana', 'cat', 'dog', 'elephant']
long_words = list(filter(lambda x: len(x) > 5, words))
print(ffilter函数示例 - 长单词筛选:{long_words})
# 实战应用1:数据处理
data = [15, 22, 8, 35, 42, 17, 9]
# 筛选出20-40之间的数字并计算它们的平方
result = list(map(lambda x: x2,
filter(lambda x: 20 <= x <= 40, data)))
print(f 实战应用1 - 数据处理:{result})
# 实战应用2:文本处理
sentences = [
Python is awesome,
Functional programming is powerful,
Lambda functions are concise
]
# 提取包含特定关键词的句子并转换为大写
keyword = function
filtered_sentences = list(map(str.upper,
filter(lambda s: keyword in s.lower(), sentences)))
print(f实战应用2 - 文本处理:{filtered_sentences})
# 实战应用3:复杂数据处理
students = [
{'name': 'Alice', 'score': 85, 'age': 20},
{'name': 'Bob', 'score': 92, 'age': 22},
{'name': 'Charlie', 'score': 78, 'age': 19},
{'name': 'David', 'score': 95, 'age': 21}
]
# 筛选成绩大于80分的学生,并只保留姓名和年龄
high_scorers = list(map(lambda s: {'name': s['name'], 'age': s['age']},
filter(lambda s: s['score'] > 80, students)))
print(f 实战应用3 - 学生数据处理:{high_scorers})
# 组合使用示例
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 链式操作:筛选奇数 -> 平方 -> 转换为字符串
processed = list(map(str,
map(lambda x: x2,
filter(lambda x: x % 2 != 0, numbers))))
print(f 组合使用示例:{processed})
# 性能优化提示
print( 性能提示:)
print(1. 对于大数据集,考虑使用生成器表达式替代map/filter)
print(2. 复杂的逻辑建议使用普通函数而非lambda)
print(3. 链式操作时注意可读性)
# 总结
print( 总结:)
print(lambda:创建匿名函数,适合简单操作)
print(map:对可迭代对象中的每个元素应用函数)
print(filter:根据条件筛选可迭代对象中的元素)
print(三者结合使用可以实现强大的数据处理功能)
```
更多推荐



所有评论(0)