**
可迭代物件:可呼叫__iter__()方法的物件,大部分物件都是可迭代的
string='hello world'
print(string.__iter__())
輸出:
容器:•容器是一系列元素的集合,str、list、set、dict、file、sockets物件都可以看作是容器,容器都可以被迭代(用在for,while等語句中),因此他們被稱為可迭代物件。
迭代器:將可迭代物件通過iter方法放入乙個容器中
基本方法:
生成迭代器:iter(iterable_object)
獲取迭代器內資料:iter_generator.next()
生成迭代器:
string='hello world'
it=iter(string)
print(next(it))
print(type(it))
#輸出:
h
迭代器的特點:
迭代器物件從集合的第乙個元素開始訪問,每個元素只能訪問一次,知道結束,無法迴圈訪問,超過可訪問的次數即報錯
string=[1,2,3,4]
it=iter(string)
print(next(it))
print(next(it))
print(next(it))
print(next(it))
print(next(it))
輸出:123
4traceback (most recent call last):
file "c:\users\高頓\desktop\myblog.py", line 7, in print(next(it))
stopiteration
生成器:生成器其實是一種特殊的迭代器
特徵:乙個函式,不用return返回,而用yield返回,返回的是乙個迭代器
#用生成器
def mygenerator():
for i in range(100):
if i >50:
yield i
f=mygenerator()
print(next(f))
輸出:51
*************************************
#用普通函式
def mygenerator():
s=for i in range(100):
if i >50:
return s
f=mygenerator()
print(f)
#輸出:
[51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
可以看出,使用生成器,可以省**,更簡潔。 Python 迭代器 生成器
可以直接作用於for迴圈的物件,統稱為可迭代物件 iterable。iterator物件表示的是乙個資料流,iterator物件可以被next 函式呼叫並不斷返回下乙個資料,直到沒有資料時丟擲stopiteration錯誤。可以把這個資料流看做是乙個有序序列,但我們卻不能提前知道序列的長度,只能不斷...
python 迭代器,生成器
什麼事迭代 可直接用作與for迴圈的物件統稱為可迭代物件 可以被next 函式呼叫,並不斷返回下乙個值的物件稱為迭代器,所有的iterable均可以通過內建函式iter 來轉變為iterator。對於迭代器來講,有乙個next 就夠了。在你使用for和in語句時,程式就會自動呼叫即將被處理的物件的可...
python 迭代器 生成器
知識背景 1 呼叫乙個普通的python函式時,一般是從函式的第一行 開始執行,結束於return語句 異常或者函式結束 可以看作隱式的返回none 2 一旦函式將控制權交還給呼叫者,就意味著全部結束。函式中做的所有工作以及儲存在區域性變數中的資料都將丟失 3 再次呼叫這個函式時,一切都將從頭建立。...