生成式与生成器

Posted 依哈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成式与生成器相关的知识,希望对你有一定的参考价值。

1、生成式

 1 #列表生成式
 2 #一次性生成所有数据,然后保存在内存中,适合小量数据
 3 a=[x*x for x in xrange(1,101) if x%2==0]
 4 #  执行的操作      for 循环         if条件
 5 print(a)
 6 #列表生成式
 7 #一次性生成所有数据,然后保存在内存中,适合小量数据
 8 a=[x*x for x in xrange(1,101) if x%2==0]
 9 #  执行的操作      for 循环         if条件
10 print(a)

2、生成器

 1 #列表生成器
 2 #返回一个可迭代对象,及‘generator’对象,,必须通过循环才可以一一取出所有结果
 3 #可迭代对象:可通过循环调用出来的就是可迭代对象,[],(),{},,生成式,生成器
 4 #迭代器,可简单理解为生成器,通过next()函数调用调用并不断返回下一个值的对象称为迭代器
 5 
 6 #1、最简单的方法:把原来生成时的[]换成()
 7 a=(x*x for x in xrange(1,101) if x%2==0)
 8 print(a)
 9 print(type(a))
10 print(a.next())
11 print(a.next())
12 print(a.next())
13 print(a.next())
14 #2、函数定义列表生成器
15 #当一个函数中有关键字yield,,,所生成的是一个生成器
16 #生成器不会一次列出所有数据,只有当你使用时会列出来,提升内存的使用率
17 def a(n):
18     sum=0
19     i=0
20     while(i<n):
21         sum+=i
22         i+=1
23         yield (sum)
24 print(type(a(10)))
25 for x in a(10):
26     print(x)
27 #列表生成器
28 #返回一个可迭代对象,及‘generator’对象,,必须通过循环才可以一一取出所有结果
29 #可迭代对象:可通过循环调用出来的就是可迭代对象,[],(),{},,生成式,生成器
30 #迭代器,可简单理解为生成器,通过next()函数调用调用并不断返回下一个值的对象称为迭代器
31 
32 #1、最简单的方法:把原来生成时的[]换成()
33 a=(x*x for x in xrange(1,101) if x%2==0)
34 print(a)
35 print(type(a))
36 print(a.next())
37 print(a.next())
38 print(a.next())
39 print(a.next())
40 #2、函数定义列表生成器
41 #当一个函数中有关键字yield,,,所生成的是一个生成器
42 #生成器不会一次列出所有数据,只有当你使用时会列出来,提升内存的使用率
43 def a(n):
44     sum=0
45     i=0
46     while(i<n):
47         sum+=i
48         i+=1
49         yield (sum)
50 print(type(a(10)))
51 for x in a(10):
52     print(x)

3、练习

1 #99乘法表
2     for i in range(1,10):
3         for j in range(1,i+1):
4             print({0}*{1}={2}\t.format(j,i,i*j)),
5         print(\n)#99乘法表
6     for i in range(1,10):
7         for j in range(1,i+1):
8             print({0}*{1}={2}\t.format(j,i,i*j)),
9         print(\n)

 

  

以上是关于生成式与生成器的主要内容,如果未能解决你的问题,请参考以下文章

python列表解析式与生成式表达式

python学习笔记——列表生成式与生成器

python—day14内置函数2列表生成式与生成器表达式模块

列表推导式与生成表达式的区别

postman 自动生成 curl 代码片段

postman 自动生成 curl 代码片段