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
今日推荐
周排行