1.迭代器
1)迭代是一个重复的过程,即每次重复为一次迭代,并且每次迭代的结果为下一次迭代的初始值
while True:
print(1)
l1 = ['a','b','c','d']
num = 0
while num < len(l1):
print(l1[num])
num += 1
利用这个程序我们可以借助下标取出列表中的每一个元素,且这个过程就是一个迭代的过程
2)字典集合这种是没有办法利用下标取值的,因此Python解释器为我们提供了一种不依赖索引的取值方法
3)有._ _iter_ _()方法的叫做可迭代对象:列表、字符串、集合、字典、元组、文件
有._ _next_ _()方法和._ _iter_ _()方法的叫做迭代器对象:只有文件
4)s2 = iter(s1)从可迭代对象变为迭代器对象
5)
info1 = iter(info)
a = 0
while a < len(info):此处需要些原来的字典,变为迭代器对象后字典没有长度
print(next(info1))利用next取值
a += 1
for data in iter(info):把info可迭代对象变为迭代器对象,并解决异常问题
print(data)
2.生成器
生成器就是迭代器,在函数中出现yield关键字就是生成器
优点:生成器和列表很像,生成器同一时间只能存储一个值,比列表节省空间
缺点:只能向后取值,不能向前取值
return往后的代码将不会被执行
遇见yield关键字将暂停
def test():
yield 1
yield 2
yield 3
yield 4
yield 5
res = test() res为迭代器对象
print(next(res))
print(next(res))
print(next(res))
def test():
for i in range(10):
yield i
res = test()
for i in res:
print(i)