Python列表推导式详解:从基础语法到实战应用

小林子
小林子
发布时间:2026-10-13| 4人浏览过
原创

本文深入解析Python列表推导式,通过数字平方、字符串处理及嵌套列表生成等实例,展示其如何替代传统for循环以简化代码。详细拆解推导式语法结构,并提供从常规写法到推导式转换的练习指南,帮助开发者掌握这一高效的数据处理工具。

Python列表推导式概述

初次接触列表推导式时,可能会觉得有些陌生。实际上,这是一种构建和使用列表的简洁方法。掌握列表推导式非常实用,因为在阅读他人代码时经常会遇到它。接下来我们将详细解析列表推导式的用法。

数字列表的推导式应用

数字列表的推导式

回顾之前的学习内容,我们可以创建一个包含前10个整数的列表,具体实现如下:


squares = []
for number in range(1,11):
  new_square = number**2
  squares.append(new_square)
for square in squares:
  print(square)

上述代码实现了创建包含10个数字的列表,对每个数字进行平方运算,并将结果存储到新数组中的功能。这段代码相对冗长,我们可以省略for循环中的中间变量new_square来简化它。使用列表推导式可以进一步精简代码,示例如下:


squares = [number**2 for number in range(1,11)]
for square in squares:
  print(square)

平方运算和生成新列表的过程被浓缩到了这一行代码中。如果觉得这行代码令人困惑,让我们逐步分析它的工作原理。

首先,我们定义了一个名为squares的列表。

接下来分析方括号内的代码逻辑:


for number in range(1, 11)

它在1到10之间创建一个循环,将每个数字赋值给变量number。然后我们来看对每次循环中的number执行了什么操作。

number**2

每个number都进行了平方运算,结果被存入之前定义的列表中。我们可以用自然语言这样解读这行代码:


squares = [raise number to the second power, for each number in the range 1-10]

其他数值运算示例

其他示例

上面的例子是对数字进行平方运算,下面的代码演示了对数字进行乘法运算,请仔细阅读代码,体会列表推导式的实际应用。


# Make an empty list that will hold the even numbers.
evens = []
# Loop through the numbers 1-10, double each one, and add it to our list.
for number in range(1,11):
  evens.append(number*2)
# Show that our list is correct:
for even in evens:
  print(even)

非数字列表的推导式应用

非数字列表的推导式

我们同样可以在非数字列表中使用推导式。在下面的例子中,我们将创建一个非数字列表,然后利用推导式生成一个新的列表。不使用推导式的原始代码如下:


# Consider some students.
students = ['bernice', 'aaron', 'cody']
# Let's turn them into great students.
great_students = []
for student in students:
  great_students.append(student.title() + " the great!")
# Let's greet each great student.
for great_student in great_students:
  print("Hello, " + great_student)

我们希望写出如下形式的推导式:

great_students = [add 'the great' to each student, for each student in the list of students]

具体代码如下:


# Consider some students.
students = ['bernice', 'aaron', 'cody']
# Let's turn them into great students.
great_students = [student.title() + " the great!" for student in students]
# Let's greet each great student.
for great_student in great_students:
  print("Hello, " + great_student)

进阶练习:嵌套列表生成

扩展练习:

生成一个[[1,2,3],[4,5,6]....]的列表最大值在100以内

首先考虑一下正常情况我们应该怎么写


a = []
for x in range(1,100,3):
 a.append([x,x+1,x+2])

然后再把它转换成列表推导式


a = [[x,x+1,x+2] for x in range(1,100,3)]

以上就是什么是python的列表推导式的详细内容,更多关于python列表推导式的含义及用法的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。