我是靠谱客的博主 动听电脑,这篇文章主要介绍生成器 解析,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# -*- 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))) 生成器方式,占用内存少
复制代码
1
2



最后

以上就是动听电脑最近收集整理的关于生成器 解析的全部内容,更多相关生成器内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部