列表生成器_创建和调用练习

 1 # Author:CallMeV
 2 # DATE  :2019-11-08
 3 # Time  : 17:53
 4 
 5 a = (x for x in range(5))#创建列表生成器的第一种方法
 6 print(a)  #<generator object <genexpr> at 0x000001E1FBA3FF20>
 7 
 8 print(next(a)) # 0 调用方式:next()内置方法
 9 print(next(a)) # 1
10 print(next(a)) # 2
11 print(next(a)) # 3
12 print(next(a)) # 4
13 
14 b = (x**2 for x in range(5))
15 
16 for i in b: # 调用方法2,for循环遍历,列表生成器本身就是一种可迭代对象(iterable)
17     print(i)
18 
19 #创建列表生成器的第二种方法
20 def foo():
21     print('ok1')
22     yield 1
23     print('ok2')
24     yield 2
25 
26 g = foo()
27 print(foo) # <function foo at 0x000001B09C31C1F0>
28 print(foo()) # <generator object foo at 0x000001B09C32FDD0>
29 a = next(g)
30 print(a)
31 b = next(g)
32 print(b)
33 
34 def foo1():
35     print('ok1')
36     yield 1
37     print('ok2')
38     yield 2
39 
40 for i in foo1():
41     print(i)
42 
43 #斐波那契数列
44 def fib(max):
45     n,a,b = 0,0,1
46     while n < max:
47         yield a
48         a , b = b , a + b
49         n = n + 1
50 for i in fib(10):
51     print(i)

猜你喜欢

转载自www.cnblogs.com/fly10086/p/11822797.html