码迷,mamicode.com
首页 > 其他好文 > 详细

生成式与生成器

时间:2017-11-06 11:33:49      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:生成器   循环调用   迭代器   就是   log   int   迭代   generator   函数   

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)

 

  

生成式与生成器

标签:生成器   循环调用   迭代器   就是   log   int   迭代   generator   函数   

原文地址:http://www.cnblogs.com/huzhendong/p/7791696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!