```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(三者结合使用可以实现强大的数据处理功能)

```

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐