python 的列表生成式

列表生成式结构

[x for x in range(1,10)]

既是在[]里面添加for循环

文章参考廖雪峰老师的网站:https://www.liaoxuefeng.com/wiki/1016959663602400/1017317609699776

#list生成方式

#1.list()
list(range(1,10))

#2.for循环
l=[]
for x in range(1,10):
    l.append(i)

#3.列表生成式
[x for x in range(1,10)]

列表生成式的双层循环

#双层循环,可生成全排列
[a+b for a in 'abc' for b in 'ABC']  #['aA', 'aB', 'aC', 'bA', 'bB', 'bC', 'cA', 'cB', 'cC'] 

列标生成式的if...else

1.如果if在for后面(过滤条件),不能加上else,否则报错;

2.如果if在for前面(x的表达式),必须加上else,这是因为for前面的部分是一个表达式,它必须根据x计算出一个结果

#输出偶数
[x for x in range(1,10) if x%2==0]  #[2, 4, 6, 8]


#如果if写在for前面必须加else,否则报错
[x if x % 2 == 0 else -x for x in range(1, 11)]  #[-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]

 

posted on 2020-07-13 18:27  小小喽啰  阅读(210)  评论(0编辑  收藏  举报