欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-01 14:57:44
...

1. if else

1个if else

python一行写if else,以及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

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判断,筛选包含某个字符的元素,或者判断元素是否等于某个值