PYTHON 列表解析表达式精讲

PYTHON 列表解析表达式精讲

前言

    列表解析表达式不仅可以简化代码,其也是一种所谓的 “向量化” 操作。在一定程度上,增加了代码的可读性和速度。因此,值得学习!!!

定义

    列表解析表达式以中括号 []if (else) / for 表达式组成,结果产生一个 列表对象 。如果实际操作就很容易理解了。如下:

lst = [i for i in range(10)]
lst
Out[10]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

两种常见的格式

    第一种,由 for 表达式和 if 表达式组成。如下示例:

lst = [i for i in range(10) if i % 2 == 0]; lst
Out[11]: [0, 2, 4, 6, 8]
lst = [i for i in range(10) if i % 2 == 0 if i % 4 == 0]; lst
Out[12]: [0, 4, 8]

    从上面的示例中,我们可以看出, if 表达式可以一直添加下去。因此,我们可以使用多种 条件 来判断和筛选数据。
    第二种,由 for 表达式和 if…else… 表达式组成。如下示例:

lst = [ i if i %4 == 0 else 0 for i in range(10) if i % 2 == 0]; lst
Out[13]: [0, 0, 4, 0, 8]
lst = [ i if i %4 == 0 else 0 for i in range(10) if i % 2 == 0 if i % 4 == 0]; lst
Out[3]: [0, 4, 8]

    此时,大家应该可以注意到了,使用 if…else 表达式时,是放在 for 表达式的前面,起到 赋值 的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值