迭代器
迭代器的作用:
迭代器的作用就是迭代,可以讓不是序列但是表現(xiàn)出序列行為,例如迭代字典的鍵,文件的行
迭代器的定義:
- 提供可擴(kuò)展的迭代器接口
- 對(duì)列表迭代帶來(lái)性能上的增強(qiáng)
- 在字典迭代中性能提升
- 創(chuàng)建真正的迭代接口,而不是原來(lái)的隨機(jī)對(duì)象訪問(wèn)
- 與所有已經(jīng)存在的用戶定義的類以及擴(kuò)展的模擬序列和映射的對(duì)象向后兼容
- 迭代非序列集合(例如映射和文件)時(shí),可以創(chuàng)建更簡(jiǎn)潔可讀的代碼
迭代器就是由next()方法的對(duì)象
內(nèi)建函數(shù):
reverse()反序迭代器
enumerate()返回迭代器
any()迭代器中某個(gè)值為true時(shí)返回true
all()迭代器中全部值為true時(shí)返回true
使用迭代器
序列使用迭代器:
myTuple = (123,'xyz',45.67)
i = iter(myTuple)
i.next()
for i in seq:
do_something_to(i)
字典中使用迭代器:
字典的迭代器會(huì)迭代字典的鍵值
for eachKey in myDict.keys():
print "%s key",eachKey,"%s data",myDict[eachKey]
文件中使用迭代器:
for eachline in open('abc.txt'):
XXXX
如何創(chuàng)建迭代器
對(duì)一個(gè)對(duì)象調(diào)用iter()就可以得到它的迭代器
iter(obj)
iter(func,sentinel)
類如果要使用迭代器需要實(shí)現(xiàn)
iter()方法和next()方法