python 的奇技淫巧(一)

今天使用列表生成的用法来实现这样一个逻辑:

[x for x in range(1, 10) if x % 2]

这样写是正确的,但是之后我想写成这样:

[x for x in range(1, 10) if x % 2 else x * 100]

但是它报错了:

File “”, line 1
[x for x in range(1, 10) if x % 2 else x * 100]
^
SyntaxError: invalid syntax

stackoverflow中查到(你可以到这儿查看完整的提问过程):
上面的正确写法应该是这样:

[ x if x%2 else x*100 for x in range(1, 10) ]

如果做过滤的话,应该是这样的:

[ EXP for x in seq if COND ]

不做过滤的话,是这样的:

[ EXP for x in seq ]

当然你也可以使用map来处理这些逻辑:

map(lambda x: [x*100, x][x % 2 != 0], range(1,10))

总的来说列表生成式可以参照这个结构:
[<逻辑部分> <循环部分> <过滤部分(可选)>]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值