免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
[每日一題]4、Python中的迭代器

第一時(shí)間收到精彩推送!

Python Every Day, 第 4 天


迭代器的好處:

迭代器和列表的作用相似,但是列表隨著元素個(gè)數(shù)的增加,所占用的空間也會(huì)增加。而迭代器的本質(zhì)是一個(gè)對(duì)象,并不像列表那樣通過(guò)索引獲取元素,充分的節(jié)省了內(nèi)存。

迭代對(duì)象:

在Python中,操作列表、字典、字符串等可以通過(guò)for ... in ... 的方式去獲取對(duì)象中的元素,這個(gè)過(guò)程稱(chēng)為遍歷,也叫做迭代。這些對(duì)象稱(chēng)為可迭代對(duì)象。

這些對(duì)象都有一個(gè) __iter__()方法,這個(gè)方法提供了一個(gè)迭代器。迭代器又會(huì)實(shí)現(xiàn)了__next__()方法。通過(guò)此方法可以去訪問(wèn)迭代對(duì)象中的元素。從第一個(gè)開(kāi)始,順序訪問(wèn),直到訪問(wèn)到最后一個(gè)元素。會(huì)拋出StopInteration異常。

迭代器 和 迭代對(duì)象 的區(qū)別:

1)可迭代對(duì)象包含迭代器。
2)如果一個(gè)對(duì)象擁有__iter__方法,其是可迭代對(duì)象;如果一個(gè)對(duì)象擁有next方法,其是迭代器。
3)定義可迭代對(duì)象,必須實(shí)現(xiàn)__iter__方法;定義迭代器,必須實(shí)現(xiàn)__iter__和next方法。

總結(jié)含有 __iter__() 【必須】和 __next__() 方法的就是迭代器。

有 __iter__() 方法代表可以使用for循環(huán)

有__next()__ 方法 可以通過(guò)next() 方法去獲取迭代器中的元素

代碼示例:

a = [135]
print(type(a))  # <class 'list'>
from collections import Iterable
# 創(chuàng)建一個(gè)a的迭代對(duì)象
a_iter = iter(a)
print(type(a_iter))  # <class 'list_iterator'>


print(a_iter.__next__())  # 1
print(a_iter.__next__())  # 3
print(a_iter.__next__())  # 5
print(a_iter.__next__())  # 迭代到最后一個(gè)元素時(shí),會(huì)拋出StopIteration異常
# 使用for in 來(lái)遍歷一個(gè)迭代對(duì)象
for i in a_iter:
    print(i)

# 遍歷try except break
while 1:
    try:
        print(a_iter.__next__())
    except StopIteration:
        print('結(jié)束....')
        break

通過(guò)Iterator判斷是否是迭代對(duì)象。

from collections import Iterable
# 判斷列表是否是可迭代對(duì)象
print(isinstance([], Iterable))  # True
# 判斷字典是否是可迭代對(duì)象
print(isinstance({}, Iterable)) # True
# 判斷字符串是否是迭代對(duì)象
print(isinstance('Hello', Iterable)) # True

感謝您的閱讀

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Python中可迭代對(duì)象怎么獲取迭代器?
Python高頻面試題——迭代器和可迭代對(duì)象
什么是生成器?Python生成器如何使用?
Python中的三個(gè)“黑魔法”與“騷操作”誰(shuí)知道?
弄懂這 5 個(gè)問(wèn)題,拿下 Python 迭代器
python迭代器的使用方法實(shí)例
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服