五.三元表达式、列表推导式、生成器表达式

一.三元表达式

三元表达式仅应用于:  #取代一个简单函数
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))
posted @ 2018-12-28 20:44  王苗鲁  阅读(84)  评论(0编辑  收藏  举报