一、三元表达式:
"""
三元表达式固定表达式
值1 if 条件 else 值2
条件成立 值1
条件不成立 值2
"""
运用场景:当某个条件成立做一件事,不成立做另外一件事。
例1:
x = 99999 y = 9898898 res = x if x > y else y # 如果if后面的条件成立返回if前面的值 否则返回else后面的值 print(res)
例2:
name = input('输入你的名字:>>>') res = 'cool' if name == 'luke' else 'sb' print(res)
二、列表生成式
res = [name_x for name_x in list if +条件]
当我们拿到一个列表,但需求只对列表内数值进行操作修改。
例:l = ['tom','nick','oscar','sean'] # 需求名字后+_sb
l = ['tom','nick','oscar','sean'] res = ['%s_sb'%name for name in l] print(res) # 输出 ['tank_sb', 'nick_sb', 'oscar_sb', 'sean_sb'] # 进阶 添加取舍条件 l = ['tank_sb', 'nick_sb', 'oscar_sb', 'sean_sb','jason_NB'] res = [name for name in l if name.endswith('_sb')] print(res) #输出 ['tank_sb', 'nick_sb', 'oscar_sb', 'sean_sb']
案例二中添加 if条件 ps:if后面不支持添加else
先for循环依次取出列表里面的每一个元素
然后交由if判断 条件成立才会交给for前面的代码
如果条件不成立 当前的元素 直接舍弃
li = [1,2,3,4,5,6,7] res = ['%s+%s'%(y,y)for y in li ] print(res) # 输出 ['1+1', '2+2', '3+3', '4+4', '5+5', '6+6', '7+7']
三、字典生成式
li = [1,2,3,4,5,6,7,8] d = { i : j for i , j in enumerate(li,1) if j != 1} print(d) # 输出 {2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8}
四、集合生成式
res = {i for i in range(10) if i != 4} print(res) # 输出 {0, 1, 2, 3, 5, 6, 7, 8, 9}
五、生成器表达式
res1 = (i for i in range(10) if i != 4) # 这样写不是元组生成式 而是生成器表达式 print(res1) for i in res1: print(i) ''' 输出 <generator object <genexpr> at 0x0000000001E20E08> 0 1 2 3 5 6 7 0 9 '''