三元表达式
res=x if x > y else y #左边的x和右边的y是条件成立和不成立的返回值 print(res) res='OK' if False else 'No' #OK是条件成立下的返回值 NO是条件不成立下的返回值 print(res)
生成式
分为列表生成式和字典生成式
列表生成式
列表生成式 l=[] for i in range(10): if i > 4: l.append(i**2) l=[i**2 for i in range(10) if i > 4] print(l) names=['egon','alex_sb','kevin_sb','hxx_sb','cxx_sb'] sbs=[] for name in names: if name.endswith('sb'): sbs.append(name) sbs=[name.upper() for name in names if name.endswith('sb')]
print([name.upper() for name in names])
print([name for name in names if name.endswith('sb')])
字典生成式
字典生成式 res={i:i**2 for i in range(10) if i > 3} print(res)
print({i for i in 'hello'})
匿名函数与内置函数
# 匿名函数就是只定义了一个函数的内存地址,主要用于临时使用一次的场景 # func=lambda x,y:x+y # print(func) # print(func(1,2)) # res=(lambda x,y:x+y)(1,2) # print(res) # print(max([10,11,-3,23])) salaries={ 'egon':3000, 'alex':100000000, 'wupeiqi':10000, 'yuanhao':2000 } # def func(k): # return salaries[k] # print(max(salaries,key=lambda k:salaries[k])) # print(min(salaries,key=func)) # for循环的结果 比较依据 # 'egon' 3000 # 'alex' 100000000 # 'wupeiqi' 10000 # 'yuanhao' 2000 # l=[4,2,3] # l_new=sorted(l,reverse=True) # print(l_new) print(sorted(salaries,key=lambda k:salaries[k],reverse=True))