首页 > 其他 > 详细

生成器初探

时间:2018-05-08 12:44:06      阅读:169      评论:0      收藏:0      [点我收藏+]

什么是生成器:
技术分享图片

生产器函数:

def
test(): yield 1 #yield相当于return 但是可以return多次 yield 2 yield 3 g=test() print(来自函数,g) print(g.__next__()) print(g.__next__())
#三元表达式

name=alex res = ‘SB if name == alex else 帅哥‘ #意思就是如果nam是alex返回的就是SB,如果不过则返回帅哥,三元就是if 以及如果ture返回的 以及如果false返回的值
print(res)


#列表解析是第一个代码块,坏处就是占内存

egg_list=[]
for i in range(10): #一般操作
egg_list.append(‘鸡蛋%s‘ %i)
print(egg_list)

l=[‘鸡蛋%s‘ %i for i in range(10)] #也可以两元
l1=[‘鸡蛋%s‘ %i for i in range(10) if i > 5 ] #这就是一个三元表达式
l1=[‘鸡蛋%s‘ %i for i in range(10) if i > 5 else i] #没有四元表达式
l2=[‘鸡蛋%s‘ %i for i in range(10) if i < 5] #不能加else但是可以改条件

#如果不要鸡蛋而是要老母鸡自己生鸡蛋
laomuji=(‘鸡蛋%s‘ %i for i in range(10)) #生成器表达式,就是把上边的列表解析的中括号改成小括号
print(laomuji)
print(laomuji.__next__())
print(next(laomuji))


l=[1,2,3,34]
map(func,l)

print(sum(l))
print(sum())
print(sum(i for i in range(10000000000000))) #sum里面就是一个生成器 sum是内置函数自己运行迭代
 
技术分享图片


生成器初探

原文:https://www.cnblogs.com/newt/p/9007401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!