python列表生成式

基础知识果然不复习就会忘,今天看到一行代码

letter_codes = [ord(ch) for ch in 'WASDRQwasdrq']

一直在想for前面加这个函数是要干啥,经过查找之后,原来是列表生成式。此处简要介绍列表生成式

1.

[x *x for x in range(1,11)]

运算结果是

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

原理是:将range包含的数字(1~10)放到x*x中得到结果

2.利用if筛选

[x * x for x in range(1,11) if x%2==0]

 运算结果是:

[4, 16, 36, 64, 100]

原理是:将range包含的数字进行筛选,去掉非偶数之后放到x*x得到结果 

3.套用双层循环,生成全排列

[m + n for m in 'ABC' for n in 'XYZ']

运算结果:

['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

原理:和普通双层for循环运行方式一致

4.使用两个变量生成列表

d={'A':'x','B':'y','C':'z'}
[k+'='+v for k,v in d.items()]

运行结果是:

['A=x','B=y','C=z']

for循环可以使用两个或多个变量

5.if else

在for前面的if需要与else配对才不会报错,若if在for后面,是筛选条件,不能带else

[x if x%2==0 for x in range(1,11)]

 这行代码会报错,因为x若不为偶数则无法处理x,所以必须加else

[x if x%2==0 else -x for x in range(1,11)]

运行结果是:

[-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]

原理:range范围内的数字先判断是偶数的话赋值给x,若不是偶数,写为-x传给列表 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值