1.迭代器
迭代器是python中一種容器類的數(shù)據(jù)類型挤牛,屬于序列粹湃。沒有具體的字#面量禽最,可以將其他的序列轉(zhuǎn)換成迭代器: iter(序列)
2.迭代器的特點: 只能通過next方法去一個一個區(qū)按照順序獲取迭代器的元素,取出后迭代器就不存在這個元素了.
iter1 = iter(['aa', 123, {'a':1, 'c':2}])
# 遍歷迭代器
for x in iter1:
print(x)
iter2 = iter((1,2,3))
a = iter2.__next__()
print(a)
print(next(iter2))
"""
四刹前、生成式和生成器
1.什么是生成器
生成器就是迭代器集索,但是迭代器不一定是生成器
生成式就是生成器的一種特殊形式:(變量 for 變量 in 序列)
例:產(chǎn)生一個生成器屿愚,生成器中可以生成的數(shù)據(jù)是數(shù)字0~4(每個元素是數(shù)字)
"""
get1 = (x*2 for x in range(5))
# print(next(get1))
# print(next(get1))
# print(next(get1))
for item in get1:
print(item)
def fun1(n):
print('生成器:')
for x in range(n+1):
yield x
# 練習(xí): 生成器生成的數(shù)據(jù)的規(guī)律:奇數(shù)就返回他本身,偶數(shù)就返回它的2倍
def func1():
for x in range(15):
if x & 1:
yield x
else:
yield x*2
g1 = func1()
for x in g1:
print(x)
迭代器
iter1 = iter([1,2,3])
print(next(iter1))
生成式
get1 = (x*2 for x in range(0,10))
for item in get1:
print(item)
生成器
def func2(n):
for x in range(n+1):
yield x*2
g1 = func2(10)
print(next(g1))
print(next(g1))
print(next(g1))