概述
# -*- coding:utf-8 -*- # ******* 生成器 最初模版 帮助理解 def test(): yield 1 # yield 相当于 return yield 2 # yield 返回一个生成器内存地址 # 可以多次yield g = test() print(g) print(next(g)) # 用next取值 print(next(g)) # ******** 三元表达式 a = 'a' res = '正确' if a == 'a' else '错误' print(res) # ********* 列表解析式 帮助理解以下 a = [] for i in range(10): a.append(i) print(a) # * 在列表中直接for循环返回值 l = [i for i in range(10)] print(l) # * 三元表达式在列表循环 l = [i for i in range(10) if i >4] print(l) # ********* 生成器 a = (i for i in range(10)) # 小括号返回生成器对象 中括号返回列表 print(a) print(next(a)) # 使用next取值 print(next(a)) # * 生成器不会占用太多内存,取一个拿一个 # * 列表会直接生成,放到内存中 # * 使用 map 函数生成器 l = [1, 2, 3, 4] a = map(str, l) # 返回一个生成器内存地址 print(next(a)) # * 使用 zip 函数 l1 = zip(l) print(next(l1)) # 可用 next 取值 # * 使用 reduce 函数 from functools import reduce q = [1, 2, 2, 2] l2 = reduce(lambda x,y:x+y, q) # print(sum(q)) 作用相同 但是占用内存太多 print(l2) # print(sum(i for in range(100))) 生成器方式,占用内存少
最后
以上就是动听电脑为你收集整理的生成器 解析的全部内容,希望文章能够帮你解决生成器 解析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复