Python列表推导式(List Comprehension)是一种简洁而强大的创建列表的方式,它能够通过一行代码实现复杂的列表生成操作。
1. 基本语法
列表推导式的基本语法如下:
[expression for item in iterable if condition]
- expression:表示你希望对每个元素执行的操作。
- item:表示可迭代对象中的每个元素。
- iterable:表示一个可迭代对象,如列表、元组或字符串。
- condition(可选):表示一个条件,只有满足该条件的元素才会被包括在结果列表中。
2. 应用示例
2.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.2 条件过滤
生成一个包含1到10之间偶数的列表:
evens = [x for x in range(1, 11) if x % 2 == 0]
print(evens) # 输出: [2, 4, 6, 8, 10]
2.3 嵌套列表推导式
生成一个包含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. 高级应用
3.1 多层嵌套
生成一个包含所有1到100之间能被3整除且其平方根小于10的数字的列表:
result = [x for x in range(1, 101) if x % 3 == 0 and int(x ** 0.5) < 10]
print(result) # 输出: [3, 6, 9]
3.2 与其他函数结合使用
使用map()
函数和列表推导式生成一个包含字符串列表中所有元素的大写形式的列表:
strings = ["apple", "banana", "cherry"]
upper_strings = [s.upper() for s in strings]
print(upper_strings) # 输出: ['APPLE', 'BANANA', 'CHERRY']
总结
Python列表推导式是一种高效、简洁且功能强大的工具,适用于各种列表生成和数据处理任务。通过合理使用列表推导式,你可以显著提高代码的可读性和执行效率。希望本文能帮助你更好地理解和应用Python列表推导式!