列表推导式的基本语法如下:
new_list = [expression for item in iterable]
这里,expression 是对 item 进行操作的表达式,iterable 是一个可迭代对象,如列表、元组、字符串等。
示例 1:生成一个包含 1 到 10 的平方的列表
squares = [x**2 for x in range(1, 11)]
print(squares) # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
你可以在列表推导式中添加条件语句,以便只对满足特定条件的元素进行操作。
示例 2:生成一个包含 1 到 10 中偶数的平方的列表
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(even_squares) # 输出: [4, 16, 36, 64, 100]
列表推导式可以嵌套使用,这样可以处理更复杂的结构。
示例 3:生成一个二维列表,其中每个子列表包含 1 到 3 的平方
nested_list = [[x**2 for x in range(1, 4)] for _ in range(3)]
print(nested_list) # 输出: [[1, 4, 9], [1, 4, 9], [1, 4, 9]]
你可以在列表推导式中使用多个可迭代对象,这在处理多个数据源时非常有用。
示例 4:生成一个列表,包含两个列表中所有可能的组合
list1 = [1, 2, 3]
list2 = ['a', 'b']
combinations = [(x, y) for x in list1 for y in list2]
print(combinations) # 输出: [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b'), (3, 'a'), (3, 'b')]
列表推导式中的表达式可以非常复杂,可以包含函数调用、条件表达式等。
示例 5:生成一个列表,包含字符串列表中每个字符串的长度
words = ["apple", "banana", "cherry"]
lengths = [len(word) for word in words]
print(lengths) # 输出: [5, 6, 6]
列表推导式在数据清洗中也非常有用,可以帮助你快速过滤和转换数据。
示例 6:去除字符串列表中的空字符串
dirty_data = ["apple", "", "banana", "", "cherry"]
clean_data = [word for word in dirty_data if word != ""]
print(clean_data) # 输出: ['apple', 'banana', 'cherry']
假设你有一个日志文件,每行记录了一个用户的访问时间。你想要提取出所有访问时间在上午 9 点到 11 点之间的记录。
日志文件内容(log.txt):
2023-10-01 08:30:00 - User1
2023-10-01 09:15:00 - User2
2023-10-01 10:45:00 - User3
2023-10-01 12:00:00 - User4
代码实现:
# 读取日志文件
with open('log.txt', 'r') as file:
logs = file.readlines()
# 使用列表推导式提取符合条件的记录
filtered_logs = [
log.strip() for log in logs
if '09:' <= log[11:13] < '12:'
]
# 打印结果
for log in filtered_logs:
print(log)
输出:
2023-10-01 09:15:00 - User2
2023-10-01 10:45:00 - User3
本文介绍了 Python 列表推导式的基本用法,包括基本列表推导式、带条件的列表推导式、多层嵌套的列表推导式、使用多个可迭代对象、复杂表达式以及数据清洗中的应用。通过实际案例,展示了如何使用列表推导式处理日志文件中的数据。
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
微信扫码免费领取【保证100%免费】
因篇幅问题不能全部显示,请点此查看更多更全内容