迭代器以及迭代器的作用
生活随笔
收集整理的這篇文章主要介紹了
迭代器以及迭代器的作用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#迭代器
'''
迭代是訪問集合元素的一種方式,迭代器是一個能夠記住遍歷位置的對象
迭代器對象從集合的第一個元素開始訪問,直到所有的元素都被訪問完結(jié)束
如果想訪問一個元素,需要把這個元素前面的所有元素都遍歷后,才可以訪問
'''
#1.可迭代的對象,像(1),(2)這些對象稱之為可迭代對象(Iterable)
#(1)以直接作用for循環(huán)的數(shù)據(jù)類型有:list/tuple/dict/set/str
#(2)generator:生成器和生成器函數(shù)
# list1 = [11,22,33]
# for i in list1:
# print(i)
# for char in 'i love china!':
# print(char)#2.判斷是否迭代
from collections import Iterable,Iterator
# def outPrint(msg):
# #判斷msg是否可迭代
# flag = isinstance(msg,Iterable)
# if flag:
# for i in msg:
# print(i)
# else:
# print(msg)
# outPrint(1)
# outPrint([11,22,33])#練習1
# print(isinstance([],Iterable))#True
# print(isinstance((),Iterable))#True
# print(isinstance({},Iterable))#True
# print(isinstance('love',Iterable))#True
# print(isinstance((x for x in range(10)),Iterable))#True# 生成器不但可以作用于for循環(huán),還可以被next函數(shù)不斷調(diào)用,并飯后下一個值,直到
# 最后拋出StopIterable異常,表示無法返回下一個值#練習2
#可以被next()函數(shù)調(diào)用并不斷返回下一個值的對象稱之為迭代器(Iterator)
#如果是迭代器對象那一定可迭代
#判斷迭代器對象
# print(isinstance([],Iterator))#False
# print(isinstance((),Iterator))#False
# print(isinstance({},Iterator))#False
# print(isinstance('love',Iterator))#False
# print(isinstance((x for x in range(10)),Iterator))#True#生成器都是Iterator對象,但list/dict/str雖然是Iterable,但不是Iterator#iter()函數(shù)
#把list/dict/str等等Iterable容器,變成Iterator
list2 = [11,22,33]
# print(next(list2))
list2 = iter(list2)
print(next(list2))
print(next(list2))
print(next(list2))
# print(next(list2))
'''
總結(jié):
1.凡是可作用于for循環(huán)的對象都是Iterable
2.凡是可作用于next()的函數(shù)的對象都是Iterator
3.iter()函數(shù)用于把Iterable容器,變成Iterator迭代器延展:
對于"流式"數(shù)據(jù)處理方式可減少內(nèi)存消耗:
比如處理文件,大視頻等,一下猛地把全部數(shù)據(jù)取出來放到內(nèi)存里就會導致程序消耗大量內(nèi)存
一般我們一部分一部分的對文件進行處理
'''
for text_line in open('userInfo.txt'):print(text_line)break
轉(zhuǎn)載于:https://www.cnblogs.com/zxf123/p/8908929.html
總結(jié)
以上是生活随笔為你收集整理的迭代器以及迭代器的作用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法导论第三版详细答案
- 下一篇: 大数据采集入门——网络爬虫技术——Sel