Python基础07-高级列表推导式和Lambda函数

在Python中,列表推导式和Lambda函数是处理数据的强大工具。本文将介绍如何使用嵌套列表推导式、带有条件的列表推导式、多可迭代对象的列表推导式、Lambda函数、在列表推导式中使用Lambda函数、用于展平嵌套列表的列表推导式、对元素应用函数、使用Lambda函数与Map和Filter函数,以及带有条件表达式的列表推导式和使用Lambda函数进行复杂转换。

1. 嵌套列表推导式

使用嵌套列表推导式可以创建矩阵或任何其他嵌套结构:

matrix = [[j for j in range(5)] for i in range(3)]
print(matrix)  # 创建一个3x5的矩阵

2. 带有条件的列表推导式

通过带有条件的列表推导式可以过滤出满足特定条件的元素:

filtered = [x for x in range(10) if x % 2 == 0]
print(filtered)  # 打印0到9中的偶数

3. 多可迭代对象的列表推导式

可以合并和转换多个源的元素:

pairs = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
print(pairs)  # 打印不相等元素的配对

4. 使用Lambda函数

Lambda函数允许你创建匿名函数,它们简洁、临时,用于执行单一操作:

square = lambda x: x**2
print(square(5))  # 返回25

5. 在列表推导式中使用Lambda函数

可以在列表推导式中使用Lambda函数来执行操作:

squared = [(lambda x: x**2)(x) for x in range(5)]
print(squared)  # 打印0到4的数字的平方

6. 用于展平列表的列表推导式

展平嵌套列表,将元素扩展到单一维度:

nested = [[1, 2, 3], [4, 5], [6, 7]]
flattened = [x for sublist in nested for x in sublist]
print(flattened)

7. 对元素应用函数

对每个元素应用一个转换函数:

import math
transformed = [math.sqrt(x) for x in range(1, 6)]
print(transformed)  # 打印1到5的数字的平方根

8. 使用Lambda与Map和Filter

使用Lambda函数映射和过滤列表:

mapped = list(map(lambda x: x**2, range(5)))
filtered = list(filter(lambda x: x > 16, mapped))
print(mapped)    # 打印0到4的数字的平方
print(filtered)  # 打印大于16的元素

9. 带有条件表达式的列表推导式

使用条件表达式进行更复杂的列表推导:

conditional = [x if x > 2 else x**2 for x in range(5)]
print(conditional)  # 对小于或等于2的数字进行平方,其他数字不变

10. 使用Lambda进行复杂转换

使用Lambda函数进行基于条件的不同转换:

complex_transformation = list(map(lambda x: x**2 if x % 2 == 0 else x + 5, range(5)))
print(complex_transformation)  # 根据奇偶条件应用不同的转换

总结

列表推导式和Lambda函数是Python中处理数据的强大工具。它们不仅可以简化代码,还可以提高数据处理的效率。

civilpy:Python数据分析及可视化实例目录944 赞同 · 36 评论文章​编辑

相关推荐

  1. python课本基础练习——列表推导

    2024-04-23 23:00:03       36 阅读
  2. Python基础篇 - 列表推导(List Comprehension)

    2024-04-23 23:00:03       56 阅读
  3. Python笔记|列表推导

    2024-04-23 23:00:03       41 阅读
  4. python列表推导

    2024-04-23 23:00:03       26 阅读
  5. Python基础Lambda匿名函数

    2024-04-23 23:00:03       34 阅读
  6. 谈谈Python中的列表推导字典推导

    2024-04-23 23:00:03       41 阅读
  7. Python | List Comprehension |列表推导

    2024-04-23 23:00:03       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 23:00:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 23:00:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 23:00:03       82 阅读
  4. Python语言-面向对象

    2024-04-23 23:00:03       91 阅读

热门阅读

  1. Vue中的 keep-alive 实现原理

    2024-04-23 23:00:03       109 阅读
  2. Makefile学习笔记

    2024-04-23 23:00:03       28 阅读
  3. C语言程序每日一练(9、楼梯)

    2024-04-23 23:00:03       28 阅读
  4. C++ 脚本处理代码记录

    2024-04-23 23:00:03       31 阅读
  5. 4月23日加油站+分发糖果

    2024-04-23 23:00:03       36 阅读
  6. 冒泡排序算法及其Python实现

    2024-04-23 23:00:03       34 阅读
  7. 程序员如何搞副业?

    2024-04-23 23:00:03       38 阅读
  8. 书生浦语训练营第2期-第5节笔记

    2024-04-23 23:00:03       37 阅读
  9. 类的声明与成员函数的实现--Car类

    2024-04-23 23:00:03       36 阅读