python迭代器和生成器

'''
迭代器的本质是使用iter()和next()
如果是python中的数据结构,无需实现即可
其他的需要自行实现
迭代器和生成器都是按需返回数据,这种惰性返回数据的方式能有效避免内存被快速占满
'''
def iterAppDemo():
    fruits=['苹果','香蕉','橘子','菠萝','桃子']
    it = iter(fruits)
    for i in range(len(fruits)):
        print(next(it))
    #print(next(it))
    it = iter(fruits)
    i = 1
    while True:
        try:
            fruit=next(it)
            print(f'第{i}行:', end='')
            print(fruit)
            i += 1
        except StopIteration:
            break

def yieldAppDemo(num):
    def countDown(num):
        while num > 0:
            yield num*2
            num -= 1
    def testCountDown(num):
        for nu in countDown(num):
            print(nu)
    testCountDown(num)

def genEquDemo():
    xx = [x*x for x in range(10)]
    xx1 = (x*x for x in range(10))
    print(xx)
    print(xx1)
    # 此处xx1是有生成器生成,要想获取生成器中的内容,借助tuple函数转换即可
    print(tuple(xx1))

CON1=True
if CON1:
    #iterAppDemo()
    #yieldAppDemo(5)
    genEquDemo()

代码非常简单,加上注释基本都能看懂,不多说。

posted @ 2026-10-13 21:21  叕叒双又  阅读(6)  评论(0)    收藏  举报