python一行写if else,以及if else列表推导

1. if else

1个if else

多个if else

(1)如果第一个if成立,则返回第一个if左边的结果

>>> b=0 
>>> a = 1 if b==0 else 3 if b==1 else 4
>>> print(a)
1

(2)如果第一个if不成立,看第二个if,如果第二个if成立,则返回第二个if左边的else结果

>>> b=0
>>> a = 1 if b==1 else 3 if b==0 else 4
>>> print(a)
3

(3)如果第一个if不成立,看第二个if,如果第二个if不成立成立,则返回第二个if右边的else结果

>>> b=0
>>> a = 1 if b==1 else 3 if b==2 else 4
>>> print(a)
4

需要注意的是,if后面是判断表达式,else后是值,不能是表达式

2. if else列表推导

(1)for value in a_list在推导式的结尾

>>> a_list = [1,2,3]
>>> a = [value if value>1 else 4 if value==1 else 5 for value in a_list]
>>> print(a)
[4, 2, 3]

第一个if value>1,因为a_list中2,3都大于1,满足第一个if表达式,所以直接返回第一个if左边的结果

第二个if value==1,因为a_list中还剩‘1’这个元素没有处理,且满足第二个if表达式,所以返回第二个if左边else的结果,反之,则返回第二个if表达式右边else的结果

>>> a_list = [1,2,3]
>>> a = [value if value>1 else 4 if value==1 else 5 for value in a_list]
>>> print(a)
[4, 2, 3]
>>> a = [value if value>1 else 4 if value==2 else 5 for value in a_list]
>>> print(a)
[5, 2, 3]

 (2)for value in a_list在if判断的左边

>>> a_list = ['ab','ac','bc']
>>> a = [value for value in a_list if 'a' in value]
>>> print(a)
['ab', 'ac']

或者

>>> a_list = ['ab','ac','bc']
>>> a = [value for value in a_list if value=='ab']
>>> print(a)
['ab']

for value in a_list后面接一个if判断,筛选包含某个字符的元素,或者判断元素是否等于某个值

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值