列表推导式是Python的一种简洁且强大的语法,用于生成新的列表。它可以用更少的代码、更清晰的方式来创建列表,特别是在处理简单的循环和条件操作时。
1. 基本语法
列表推导式的基本语法如下:
[expression for item in iterable]
expression
:表达式,计算结果用于生成列表的元素。item
:迭代变量,从可迭代对象中取出每个元素。iterable
:可迭代对象,如列表、元组、字符串等。
示例:
# 使用列表推导式生成平方数列表
squares = [x**2 for x in range(10)]
print(squares) # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2. 带条件的列表推导式
可以在列表推导式中加入条件判断,只包括满足条件的元素。
[expression for item in iterable if condition]
示例:
# 使用列表推导式生成偶数平方列表
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares) # 输出: [0, 4, 16, 36, 64]
3. 嵌套列表推导式
列表推导式可以嵌套,用于处理多层循环。
[expression for item1 in iterable1 for item2 in iterable2]
示例:
# 使用嵌套列表推导式生成笛卡尔积
cartesian_product = [(x, y) for x in range(3) for y in range(3)]
print(cartesian_product) # 输出: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
4. 带多个条件的列表推导式
可以在列表推导式中加入多个条件判断。
[expression for item in iterable if condition1 and condition2]
示例:
# 使用列表推导式生成符合多个条件的元素
filtered_list = [x for x in range(20) if x % 2 == 0 and x % 3 == 0]
print(filtered_list) # 输出: [0, 6, 12, 18]
5. 字符串操作中的列表推导式
列表推导式可以用于处理字符串的操作,如将字符串中的每个字符转换为大写。
# 将字符串中的每个字符转换为大写
uppercase_letters = [char.upper() for char in "hello"]
print(uppercase_letters) # 输出: ['H', 'E', 'L', 'L', 'O']
6. 使用函数的列表推导式
可以在列表推导式中调用函数来生成新列表。
def square(x):
return x**2
# 使用函数生成平方数列表
squares = [square(x) for x in range(10)]
print(squares) # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
7. 可运行的Python案例
下面是一个完整的Python程序,演示了各种列表推导式的用法。
# 1. 基本列表推导式
squares = [x**2 for x in range(10)]
print("平方数列表:", squares) # 输出: 平方数列表: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 2. 带条件的列表推导式
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print("偶数平方列表:", even_squares) # 输出: 偶数平方列表: [0, 4, 16, 36, 64]
# 3. 嵌套列表推导式
cartesian_product = [(x, y) for x in range(3) for y in range(3)]
print("笛卡尔积:", cartesian_product) # 输出: 笛卡尔积: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
# 4. 带多个条件的列表推导式
filtered_list = [x for x in range(20) if x % 2 == 0 and x % 3 == 0]
print("符合多个条件的列表:", filtered_list) # 输出: 符合多个条件的列表: [0, 6, 12, 18]
# 5. 字符串操作中的列表推导式
uppercase_letters = [char.upper() for char in "hello"]
print("大写字母列表:", uppercase_letters) # 输出: 大写字母列表: ['H', 'E', 'L', 'L', 'O']
# 6. 使用函数的列表推导式
def square(x):
return x**2
squares = [square(x) for x in range(10)]
print("使用函数生成的平方数列表:", squares) # 输出: 使用函数生成的平方数列表: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
可以将上面的代码复制到你的IDE中运行,观察程序的输出。这个案例综合了列表推导式的各种用法,帮助你理解和掌握这些操作。继续加油,学习Python会越来越有趣和有用!
标签:输出,推导,Python,List,列表,range,Comprehensions,print,squares From: https://blog.csdn.net/qq_41698317/article/details/140601553