迭代就像是遍历,迭代只能一个个往下获取,不能往上获取,需使用iter函数。
name是一个包含元素cc,dd,ee的迭代器
>>> name=iter(['cc','dd','ee'])
#访问迭代器中的元素需使用next方法
>>> print(name.__next__())
cc
>>> print(name.__next__())
dd
>>> print(name.__next__())
ee
################################生成器#######################
#在函数中加入yield那么函数就变成一个生成器,实例:
def take_money(num):
while num>0:
num -= 10
yield "你拿了10哦。"
print("还可以拿啦靓仔!")#当拿完则不执行此行代码
package = take_money(40)#给num值40
print(package.__next__())#通过next方法访问,输出为 "你拿了10哦。",当下一次执行next时才会输出"还可以拿啦靓仔!"
print(package.__next__())#输出"还可以拿啦靓仔!","你拿了10哦。"
print("no!")#中间可以跳出来执行这俩句代码,有点中断的味道,输出"no"
print("no!")#输出"no"
print(package.__next__())#"还可以拿啦靓仔!","你拿了10哦。"
print("ok")