Python列表推导式:语法、条件判断与实战练习
本文深入解析Python列表推导式的用法,展示如何替代传统循环快速创建列表。详细讲解包含条件语句(if)及三元表达式(if-else)的高级写法,并通过提取姓名、生成倍数及筛选分数等具体代码案例,帮助开发者掌握这一高效的数据处理工具。
本文通过具体实例解析Python中的列表推导式,旨在提供一份可供参考的学习资料。
列表推导式基础语法
列表推导式
列表推导式是一种能够以简洁方式快速生成列表的语法结构。
以下是传统的复杂实现方式:
capitalized_cities = []
for city in cities:
capitalized_cities.append(city.title())
经过简化后的代码写法如下:
capitalized_cities = [city.title() for city in cities]
由此可见,利用列表推导式,开发者可以通过单行代码结合 for 循环直接构建列表,从而简化代码逻辑。
条件语句与三元表达式
在列表推导式中引入条件语句:
可以在列表推导式内部添加条件判断语句:
squares = [x**2 for x in range(9) if x % 2 == 0]
若需在推导式中处理 else 分支,必须将条件表达式移至推导式的起始位置,紧跟在迭代变量之后,具体结构如下:
squares = [x**2 if x % 2 == 0 else x + 3 for x in range(9)]
需要注意的是,列表推导式是 Python 特有的语法特性,在其他编程语言中并不常见,但在 Python 开发中应用广泛。
列表推导式实战练习
列表推导式相关练习
尝试使用列表推导式构建新列表 first_names,该列表仅包含 names 列表中各个名字的小写形式。
names = ["Rick Sanchez", "Morty Smith", "Summer Smith", "Jerry Smith", "Beth Smith"]
first_names = [name.split(' ')[0].lower() for name in names]
print(first_names) # ['rick', 'morty', 'summer', 'jerry', 'beth']
使用列表推导式生成一个名为 multiples_3 的列表,其中包含从 1 到 20 这 20 个整数各自乘以 3 后的结果。
multiples_3 = [3 * num for num in range(1, 21)]
print(multiples_3) # [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60]
利用列表推导式创建一个名为 passed 的列表,该列表仅包含得分不低于 65 分的对应姓名。
scores = {
"Rick Sanchez": 70,
"Morty Smith": 35,
"Summer Smith": 82,
"Jerry Smith": 23,
"Beth Smith": 98
}
passed = [name for name, score in scores.items() if score >= 65]
print(passed) # ['Rick Sanchez', 'Beth Smith', 'Summer Smith']
如需了解更多 Python 相关内容,可参考本站系列文章:《Python列表(list)操作技巧总结》、《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》。
希望本文提供的解析与示例能对您的 Python 程序设计学习有所帮助。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









