如何理解列表推导式
Posted vincent-sh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何理解列表推导式相关的知识,希望对你有一定的参考价值。
a= [] for i in range(10):
if i %2 == 0:
a.append(i) ===> [ i for i in range(10) if i % 2 ==0]
所以列表推导式的要素有3个
1)for 循环
2)被添加的元素
3)条件
限制:
1) 条件:只有一个出口,没有else
2) 被添加的元素也只有一个出口
举例1。
x = [[1, 2], [3, 4], [5, 6]] # 要求提取偶数元素,并开方 result = [i ** 2 for a in x for i in a if i % 2 == 0] print(result)
[4, 16, 36]
2。
x = [[1, 2], [3, 4], [5, 6], 10] result = [i for a in x if isinstance(a, list) for i in a] print(result)
[1, 2, 3, 4, 5, 6]
关注由于只有1个出口,所以没有else,但是可不可以结合三元表达式呢
3。
example2 = [[1,2,3],[4,5,6],[7,8,9],[10]] exmaple5 = [j**2 for i in example2 if len(i)>1 for j in i if j%2 == 0] print(exmaple5)
实际上可以转换成
exmaple5=[] for i in example2: if len(i)>1: for j in i: if j%2 == 0: exmaple5.append(j**2) print(exmaple5)
所以可以看出列表表达式只有一个元素出口,三元表达式可以增加一个条件 但是只能单线下传,不能else
以上是关于如何理解列表推导式的主要内容,如果未能解决你的问题,请参考以下文章