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]