三元表达式
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))