xxx生成式

三元表达式
def max2(x,y):
    if x > y:
        return x
    else:
        return y

相当于

res = x if x>y else y

样式:res='条件成立的值' if x > y else '条件不成立的值'


 

列表生成式

l=[]
for i in range(1,11):
    if i > 4:
        res='egg%s' %i
        l.append(res)
print(l)

相当于

l=['egg%s' %i for i in range(1,11) if i > 4]

样式:[内容样式 for循环体 操作条件]


 

生成器表达式
res=(i**2 for i in range(3))
print(res)
print(next(res))
print(next(res))
print(next(res))
print(next(res))

字典生成式
items=[('name','egon'),('age',18),('sex','male')]

dic={}
for k,v in items:
    dic[k]=v
print(dic)

相当于

res={k:v for k,v in items if k != 'sex'}

或是集合生成式就不要k:v的形式传值

 

 
 

 

posted @ 2018-09-28 17:44  msjaxuexi  阅读(133)  评论(0编辑  收藏  举报