day13 三元表达式 生成式 匿名函数与内置函数

三元表达式

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))

  

原文地址:https://www.cnblogs.com/wangmiaolu/p/10044135.html