列表推导式和生成器是 Python 中的两个非常有用的工具。它们可以帮助你以简洁和高效的方式创建和处理数据集合。了解它们的用法不仅可以让代码更加简洁,还能提升代码的执行效率。 1. 列
列表推导式和生成器是 Python 中的两个非常有用的工具。它们可以帮助你以简洁和高效的方式创建和处理数据集合。了解它们的用法不仅可以让代码更加简洁,还能提升代码的执行效率。 1. 列表推导式列表推导式(List Comprehension)是一种简洁的创建列表的方式。通过它,能够用一行代码生成列表,而不需要像传统方式那样使用循环。 1.1 基本语法
1.2 示例创建一个包含1到10平方值的列表:
带条件的列表推导式: 只保留偶数的平方:
使用多个循环的列表推导式: 创建一个包含(1, 2), (1, 3), (2, 2), (2, 3)的列表:
2. 生成器表达式生成器表达式(Generator Expression)与列表推导式非常相似,但不同的是,生成器表达式不会一次性将所有结果存储在内存中,而是每次迭代时动态生成数据。这使得生成器在处理大量数据时比列表推导式更高效。 2.1 基本语法
生成器表达式的语法与列表推导式几乎相同,只是使用了圆括号而不是方括号。 2.2 示例生成一个生成器表达式:
要获取生成器中的元素,可以使用 next() 函数或将其转为列表:
将生成器转为列表:
2.3 生成器的优势生成器的主要优势在于它节省内存。生成器一次只生成一个值,而不是像列表那样一次性将所有元素加载到内存中。因此,生成器在处理非常大的数据集时非常有用。 例如:生成前 100 万个数字的平方 使用生成器:
与列表推导式相比,生成器几乎不占用额外内存,而列表推导式会创建一个 100 万元素的列表。 3. 列表推导式 vs 生成器表达式
4. 小结
掌握列表推导式与生成器,不仅可以让代码更加简洁易读,还能有效提升代码性能,在不同的应用场景中选择合适的工具将大大提高代码效率。 |
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27