栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python迭代器和生成器

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python迭代器和生成器

目录

迭代器

1、可迭代对象

2、迭代器取值方法

3、怎么区分迭代器和迭代对象

生成器

1、yield

迭代器

百科:迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。

1、可迭代对象

1、list tuple str

2、if  for  while  

2、迭代器取值方法

①

代码如下:

a=[0, 2, 4, 6, 8]
index=0
while index 

运行结果:

②

代码如下:

a=[0, 2, 4, 6, 8]
b=iter(a)   #list_iterator 列表_迭代
print(b)
try:
    while True:
        print(next(b))
except:
    print("错误")

运行结果:

③

代码如下:

a=[0, 2, 4, 6, 8]
b=iter(a)   #list_iterator 列表_迭代
print(next(b))  #可以用next函数去迭代器中取值
print(b.__next__())#__next__魔法方法
print(next(b))
print(b.__next__())

运行结果:

3、怎么区分迭代器和迭代对象

代码如下:

#迭代器有iter和next魔法方法
#迭代对象只有iter
print(dir(a))
print(dir(b))

生成器

1、yield

①

代码如下:

def func():#生成器可以生成几次,生成器生成的次数取决于yield执行的次数
    yield 1#同return一样会返回一个结果,但是函数不会终止
    yield 2
    yield 3
a=func()
print(next(a))
print(next(a))
print(next(a))

运行结果:

②计算1-7的乘积

代码如下:

def func():
    cj=1
    sums=0
    for i in range(1,7):
        cj *= i
        yield cj

f1=func()
print(next(f1))
print(next(f1))
print(next(f1))
print(next(f1))
print(next(f1))
print(next(f1))

运行结果:

 

③简单加法计算器

代码如下:

def func1():
    sums=0
    while True:
        num=int(input("输入:"))
        sums+=num
        yield sums
ff1=func1()
while True:
    print("求和的结果是:",next(ff1))

运行结果:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1034812.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号