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()
代码非常简单,加上注释基本都能看懂,不多说。
人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。
浙公网安备 33010602011771号