1樓:司馬弈
Python中 list,truple,str,dict這些都可以被迭代,但他們並不是迭代器。為什麼?
因為和迭代器相比有乙個很大的不同,list/truple/map/dict這些資料的大小是確定的,也就是說有多少是可知的。但迭代器不是,迭代器不知道要執行多少次,所以可以理解為不知道有多少個元素,每呼叫一次next(),就會往下走一步,是惰性的。
判斷是不是可以迭代,用Iterable
from
collections
import
Iterable
isinstance
({},
Iterable
)-->
True
isinstance
((),
Iterable
)-->
True
isinstance
(100
,Iterable
)-->
False
判斷是不是迭代器,用Iterator
from collections import Iterator
isinstance({}, Iterator) -->False
isinstance((), Iterator) -->False
isinstance( (xforxinrange(10)), Iterator) -->True
所以,凡是可以for迴圈的,都是Iterable
凡是可以next()的,都是Iterator
集合資料型別如list,truple,dict,str,都是Itrable不是Iterator,但可以通過iter()函式獲得乙個Iterator物件
Python中的for迴圈就是通過next實現的
2樓:tearshark
不懂Python,早就忘光了。
其實就是字面意思,這本該是英語理解問題。
其他語言也有類似的,IEnumerator和IEnumeratable。
3樓:引力微子球
有問題就多看看文件:https://
docs.python.org/3/glossary.html#term-iterable如果這個答案有什麼地方不對的話,以文件為準。
iterable,根據文件中的定義,指的是那些可以把自己的成員乙個乙個返回(或者說遍歷自己的成員)的一類物件(這裡的成員不是類成員的那種成員,而更類似於元素)。只要有__iter__()或者__getitem__()(類似於operator)定義的物件都是iterable。
乙個iterator物件就是我們所謂的迭代器,你可以把它傳給next()或者呼叫它的__next__()來獲得下乙個元素。按照Python的要求,iterator的__iter__()應當返回其自身,因此iterator也是乙個Iterable。
一般而言你不需要直接操作iterator,for迴圈會幫你搞定的。
4樓:小張
可迭代物件呼叫__iter__方法返回乙個迭代器迭代器總是可迭代物件, 迭代器的__iter__方法返回selfiterable :
可迭代物件, 實現了__iter__方法, 該方法返回乙個迭代器iterator
即x是可迭代物件, y和z是迭代器
>>>x=
[1,2
,3]>>>y=
iter(x
)>>>z=
iter(x
)>>>
next(y
)1>>>
next(y
)2>>>
next(z
)1>>>
type(x
) 'list '>>>>type(y ) 'list_iterator '>>>>type (iter(y )) 'list_iterator '>iterator : 1, 迭代器實現了__next__和__iter__方法, 並使__iter__方法返回self ( 即迭代器總是乙個可迭代物件) 2, 迭代器持有乙個內部狀態, 用於確定下次迭代的返回值3, 迭代器不會一次性把所有元素載入到記憶體中, 就像乙個懶載入工廠, 在呼叫__next__方法的時候才返回下乙個元素 x= [1,2 ,3]for eleminx :... 執行時 : 原文 : 文刀天可 我的理解是serve socketserver使用多執行緒的話,應該是要使用 ThreadingTCPServer這個類,這個類繼承了ThreadingMixIn類和TCPServer類,其中ThreadingMixIn類才是處理執行緒的,而serve forever是通過TCPServe... 野客 說幾種 matplotlib 之外相對比較常見的 Python 視覺化庫吧。1.pyecharts pyecharts 是將 Python 與 ECharts 結合的視覺化庫,用於通過 Python 生成 Echarts 圖表。繪製玫瑰圖等常見疫情圖 超詳細 pyecharts1.x 教程 2... levi a parameter is a variable which we use in the function definition that is a handle that allows the code in the function to access the arguments f...python 中關於serve forever函式
Python中除了matplotlib外還有哪些資料視覺化的庫?
在Python中,parameters與argument有什麼不同?