首页 > 其他 > 详细

生成器和迭代器练习案例

时间:2021-06-06 00:50:37      阅读:16      评论:0      收藏:0      [点我收藏+]

1、实现enumerate函数

def enumerate_generator(iterable):
    for i in range(len(iterable)):
        yield i,iterable[i]

gen_e = enumerate_generator([a,b,c,d])
for e in gen_e:
    print(e)

运行结果:

(0, a)
(1, b)
(2, c)
(3, d)

2、实现zip函数

def zip_generator(*args):
    len_list = []
    for i in args:
        len_list.append(len(i))
    for n in range(min(len_list)):
        t = ()
        for i in args:
            t += (i[n],)
        yield t

gen_z = zip_generator([1,2,3,4],(a,b,c,d,e),[A,B,C])
for z in gen_z:
    print(z)

运行结果:

(1, a, A)
(2, b, B)
(3, c, C)

3、不使用for循环,遍历列表[1,2,3,4,5,6,7,8,9,10]

a_list = [1,2,3,4,5,6,7,8,9,10]
iter_list = a_list.__iter__() #变成迭代器
while True:
    try:
        res = next(iter_list)
    except:
        break
    else:
        print(res)

运行结果:

1
2
3
4
5
6
7
8
9
10

 

生成器和迭代器练习案例

原文:https://www.cnblogs.com/eliwang/p/14853927.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!