for循环利用可迭代对象与迭代器完成工作的本质
生活随笔
收集整理的這篇文章主要介紹了
for循环利用可迭代对象与迭代器完成工作的本质
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
for循環(huán)工作本質
for item in Iterable 循環(huán)的本質就是先通過iter()函數(shù)獲取可迭代對象Iterable
的迭代器,然后對獲取到的迭代器不斷調?next()?法來獲取下?個值并將其
賦值給item,當遇到StopIteration的異常后循環(huán)結束。
li = [100, 200, 300]
# for num in li:
# ? ? print(num)
? ? # 1. 通過調用可迭代對象的__iter__方法獲取迭代器
? ? # 2. 對迭代器調用__next__進行迭代操作,
? ? # ? ? 如果沒有拋出StopIteration異常,表示迭代沒有結束,把獲取到的數(shù)據(jù)元素放到變量中
? ? # ? ? 如果拋出了異常,表示迭代結束,退出執(zhí)行
? ? # 3. 執(zhí)行循環(huán)體
? ? # 4. 跳轉到第2步執(zhí)行
while循環(huán)解釋for工作本質:
iterator = li.__iter__()
while True:
? ? try:
? ? ? ? num = iterator.__next__()
? ? except StopIteration:
? ? ? ? break
? ? else:
? ? ? ? print(num)
for item in Iterable 循環(huán)的本質就是先通過iter()函數(shù)獲取可迭代對象Iterable
的迭代器,然后對獲取到的迭代器不斷調?next()?法來獲取下?個值并將其
賦值給item,當遇到StopIteration的異常后循環(huán)結束。
li = [100, 200, 300]
# for num in li:
# ? ? print(num)
? ? # 1. 通過調用可迭代對象的__iter__方法獲取迭代器
? ? # 2. 對迭代器調用__next__進行迭代操作,
? ? # ? ? 如果沒有拋出StopIteration異常,表示迭代沒有結束,把獲取到的數(shù)據(jù)元素放到變量中
? ? # ? ? 如果拋出了異常,表示迭代結束,退出執(zhí)行
? ? # 3. 執(zhí)行循環(huán)體
? ? # 4. 跳轉到第2步執(zhí)行
while循環(huán)解釋for工作本質:
iterator = li.__iter__()
while True:
? ? try:
? ? ? ? num = iterator.__next__()
? ? except StopIteration:
? ? ? ? break
? ? else:
? ? ? ? print(num)
總結
以上是生活随笔為你收集整理的for循环利用可迭代对象与迭代器完成工作的本质的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 岭回归预测PM2.5
- 下一篇: 微信小程序:页面跳转时传递数据到另一个页