8. 列表推导式

列表推导式

列表推导式(List Comprehension)又叫列表解析式,是用一个可迭代对象(如列表、元组、集合或字符串)来创建新的列表的方式。

它允许你使用简洁的表达式来生成列表,而不需要编写完整的循环语句。

语法

[ 表达式 for 变量 in 可迭代对象 ]
# 或
[ 表达式 for 变量 in 可迭代对象 if 真值表达式 ]

示例

使用 for 语句创建列表:

s1 = []
for x in range(1, 10):
    s1.append(x ** 2)

print("s1:", s1)

使用 列表推导式 创建同样的列表:

s2 = [x ** 2 for x in range(1, 10)]
print('s2:', s2)

示例2

# 以下生成一个数值为1~9的平方的列表,结果的个位数为4的跳过
# 结果: s1 = [1, 9, 16, 25, 36, 49, 81]
s3 = [x ** 2 for x in range(1, 10) if x ** 2 % 10 != 4]
print('s3:', s3)

列表推导式嵌套

语法

[ 表达式1
    for 变量1 in 可迭代对象1 if 真值表达式1
        for 变量2 in 可迭代对象2 if 真值表达式2 ]

示例

生成如下面列表

['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

s4 = [x + y for x in "ABC" for y in "123"]

print('s4:', s4)
视频讲解