```python

# Python函数式编程:lambda与高阶函数的简洁艺术

# 1. lambda表达式基础应用

# 传统函数定义

def square(x):

return x 2

# lambda等价写法

square_lambda = lambda x: x 2

# 立即执行lambda

result = (lambda x, y: x + y)(3, 5)

print(f立即执行结果: {result})

# 2. 结合高阶函数提升代码简洁性

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 使用map进行转换

squared_numbers = list(map(lambda x: x2, numbers))

print(f平方数: {squared_numbers})

# 使用filter进行过滤

even_numbers = list(filter(lambda x: x % 2 == 0, numbers))

print(f偶数: {even_numbers})

# 使用reduce进行累积计算

from functools import reduce

product = reduce(lambda x, y: x y, numbers)

print(f乘积: {product})

# 3. 复杂数据处理场景

data = [

{'name': 'Alice', 'age': 25, 'score': 85},

{'name': 'Bob', 'age': 30, 'score': 92},

{'name': 'Charlie', 'age': 22, 'score': 78}

]

# 按分数排序

sorted_by_score = sorted(data, key=lambda x: x['score'], reverse=True)

print(按分数排序:, sorted_by_score)

# 提取特定字段

names = list(map(lambda x: x['name'], data))

print(f姓名列表: {names})

# 条件过滤

high_scorers = list(filter(lambda x: x['score'] > 80, data))

print(f高分者: {high_scorers})

# 4. 函数组合与管道操作

def compose(functions):

return reduce(lambda f, g: lambda x: f(g(x)), functions)

# 创建处理管道

process = compose(

lambda x: x 2, # 乘以2

lambda x: x + 10, # 加10

lambda x: x 2 # 平方

)

print(f管道处理结果: {process(5)})

# 5. 偏函数应用

from functools import partial

# 创建特定功能的函数

multiply_by_3 = partial(lambda x, y: x y, 3)

result = multiply_by_3(7)

print(f偏函数应用: {result})

# 6. 条件lambda与复杂逻辑

categorize = lambda age: 青年 if age < 30 else 中年 if age < 50 else 老年

ages = [25, 35, 45, 55, 65]

categories = list(map(categorize, ages))

print(f年龄分类: {categories})

# 7. 嵌套数据结构处理

nested_data = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]

flattened = reduce(lambda acc, lst: acc + lst, nested_data, [])

print(f扁平化结果: {flattened})

# 8. 字典处理技巧

word_count = {'apple': 3, 'banana': 1, 'orange': 2}

sorted_words = dict(sorted(word_count.items(), key=lambda x: x[1], reverse=True))

print(f按词频排序: {sorted_words})

# 9. 多条件排序

students = [

{'name': 'Alice', 'grade': 'A', 'age': 20},

{'name': 'Bob', 'grade': 'B', 'age': 22},

{'name': 'Charlie', 'grade': 'A', 'age': 19}

]

# 先按年级,再按年龄排序

multi_sorted = sorted(students, key=lambda x: (x['grade'], x['age']))

print(多条件排序:, multi_sorted)

# 10. 性能考虑与最佳实践

# 对于简单操作使用lambda,复杂逻辑仍建议使用def

# 避免过长的lambda表达式,保持可读性

# 总结:lambda与高阶函数的优势

# - 代码更简洁,减少样板代码

# - 函数作为一等公民,提升灵活性

# - 更好的表达数据处理流水线

# - 提高代码的函数式纯度

```

更多推荐