#可迭代的物件:但凡資料型別可以執行__iter__()# ''.__iter__()
# .__iter__()
# (1,2).__iter__()
# .__iter__()
# .__iter__()
# open('a.txt').__iter__()
#呼叫可迭代物件的__iter__()方法,會得到乙個返回值,該返回值就是迭代器物件
#迭代器物件:既內建有__iter__()方法,又內建又__next__()方法.例如:檔案本身就是迭代器物件
#迭代器總結:
#優點:1,提供了一種不依賴索引的迭代器取值方式
# 2,迭代器中不包含任何值,占用空間極小
#缺點:1,一次性,只能取乙個,依此往後,無法**迭代器物件中值的個數
# 2,無法取得指定的值,不如按索引/key 取值靈活
例如:# dic =
# iter_dic = dic.values().__iter__()
# print(iter_dic,type(iter_dic))##
## try:
# print(iter_dic.__next__())
# print(iter_dic.__next__())
# print(iter_dic.__next__())
# print(iter_dic.__next__())
# except:stopiteration
# dic =
# iter_dic = iter(dic)
# while 1:
# try:
# print(next(iter_dic))
# except stopiteration:break
#生成器是一種自定義的迭代器
#在函式中但凡出現yield關鍵字,然後呼叫函式不會立即執行函式體**,會得到乙個返回值,該返回值稱之為生成器
#即自定義的迭代器
#總結#yield提供了一種迭代器的解決方案
#yield對比return,相同點:都能返回值,並且返回值沒有型別和個數限制
# 不同點:yield可以返回多次值,而return只能返回一次值
def my_range(start,stop,step):
while start < stop:
yield start
start += step
res = my_range(1,10001,2)
while 1:
try:
print(next(res))
except stopiteration:break
Python3 迭代器和生成器
1.迭代器 iterator 迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。迭代器有兩個基本的方法 iter 和next list 1,2,3,4 it iter list 建立迭代器物件 for x in it ne...
Python3 迭代器與生成器
迭代是python最強大的功能之一,是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。迭代器有兩個基本的方法 iter 和 next 字串,列表或元組物件都可用於建立迭代器 list 1 2,3 ...
python3 迭代器與生成器
生成器yield 在python中,使用了yield的函式被稱為生成器 generator 跟普通函式不同的是,生成器是乙個返回迭代器的函式,只能用於迭代操作,更簡單點理解生成器就是乙個迭代器。在呼叫生成器的執行過程中,每次遇到yield時函式會暫停並儲存當前所有執行資訊,返回yield的值。並在下...