码迷,mamicode.com
首页 > 其他好文 > 详细

如何理解列表推导式

时间:2020-06-05 22:50:04      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:div   maple   提取   如何   pen   偶数   for 循环   end   结合   

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

 

如何理解列表推导式

标签:div   maple   提取   如何   pen   偶数   for 循环   end   结合   

原文地址:https://www.cnblogs.com/vincent-sh/p/13052404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!