五.三元表达式、列表推导式、生成器表达式
一.三元表达式
三元表达式仅应用于: #取代一个简单函数 1、条件成立返回 一个值 2、条件不成立返回 一个值
def max2(x,y): if x > y: return x else: return y res=max2(10,11) print(res)
# 三元表达式 def max(x,y): return x if x>y else y print(max(10,20))
二.列表生成式(装着一筐鸡蛋)
l=[] for i in range(100): l.append('egg%s' %i) print(l) l=['egg%s' %i for i in range(100)] l=['egg%s' %i for i in range(1000) if i > 10] print(l) l=[] for i in range(100): l.append('egg%s' %i) print(l) l=['egg%s' %i for i in range(100)] l=['egg%s' %i for i in range(1000) if i > 10] print(l)
三.生成器表达式(一只下蛋的母鸡)
l=('egg%s' %i for i in range(1000) if i > 10) print(next(l)) print(next(l)) print(next(l))
四.声明式编程练习(待完善)
names=['egon','alex_sb','wupeiqi','yuanhao','lxx'] res=map(lambda x:x.upper(),names) names=list(res) print(names) names=['egon','alex_sb','wupeiqi','yuanhao','lxx'] names=[name.upper() for name in names] print(names) names=['egon','alex_sb','wupeiqi','yuanhao','lxx'] names=[len(name) for name in names if not name.endswith('sb')] print(names) nums=[] with open('a.txt','r',encoding='utf-8') as f: for line in f: # print(len(line)) nums.append(len(line)) print(max(nums)) with open('a.txt','r',encoding='utf-8') as f: # nums=(len(line) for line in f) # print(nums) # print(next(nums)) # print(next(nums)) # print(next(nums)) # print(max(nums)) # print(max(nums)) # max((len(line) for line in f)) print(max(len(line) for line in f))