Python基础教程

004_Python列表推导式

Python列表推导式

Python列表推导式

Python列表推导式又称列表生成式、列表解析式,是表达式与循环的结合。

列表生成式是一种灵活快速的生成列表list的方式。

列表推导式的方括号内包含以下内容:一个表达式,后面跟一个 for 子句,然后,是零个或多个 forif 子句。结果是新的列表,由对表达式依据后面的 forif 子句的内容进行求值计算而得出。

list1=[x for x in range(10)]
print(list1)                    # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list2=[x*x for x in range(10)]
print(list2)                    # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
list3=[x*x for x in range(10) if x % 2==0]
print(list3)                    # [0, 4, 16, 36, 64]

稍微复杂点的例子

mylist=[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
print(mylist)
# [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

列表推导式与三元表达式结合(即列表推导式中的表达式是三元表达式)

mylist = [1 if i % 2 == 0 else 0 for i in range(1, 11)]
print(mylist)
# [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

Python列表推导式的嵌套

Python列表推导式的嵌套时,先计算内层,再计算外层,这一点与普通循环嵌套一样。

矩阵转置

matrix = [
     [1, 2, 3, 4],
     [5, 6, 7, 8],
     [9, 10, 11, 12],
 ]

t_matrix=[[row[i] for row in matrix] for i in range(4)]
print(t_matrix)
# [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
这篇文章对您有用吗?

我们要如何帮助您?