最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

python:for loop的對(duì)象必須是一個(gè)可迭代對(duì)象

2022-03-17 00:56 作者:云漢含星  | 我要投稿

在python中經(jīng)常會(huì)遇到這樣的一個(gè)代碼:

list是一個(gè)有序的列表。我們可以根據(jù)順序來for循環(huán)遍歷整個(gè)list。使用string和tuple的時(shí)候也可以這樣子for loop 遍歷。這是非常符合代碼直覺的,因?yàn)楸闅v的都是有序的對(duì)象。然而我們使用字典的時(shí)候,無序的對(duì)象我們依然能夠進(jìn)行for loop遍歷。

因?yàn)閒or loop要求對(duì)象是一個(gè)可迭代的對(duì)象(iterable)。

上面的代碼使用子這個(gè)仍然能夠順利的打印出列表中的元素。因?yàn)榱斜硎且粋€(gè)可迭代的對(duì)象(iterable)而且也是迭代器(iterator)我們可以根據(jù)迭代器的next(it)函數(shù)去迭代,依次訪問每一個(gè)元素。

總的來說:iterable和iterator的定義是相近的,在使用的時(shí)候可以把iterable當(dāng)成一個(gè)container,而iterator是一個(gè)迭代器,可就和索引一樣,可以通過next()方法依次獲取這個(gè)容器中的每一個(gè)元素。

一般來說一個(gè)iterable對(duì)象都要求他是一個(gè)iterator。而一個(gè)iterator也要求他是一個(gè)iterable對(duì)象。

用鏈表舉例子:自己定義一個(gè)可迭代對(duì)象:

這個(gè)代碼就是鏈表,可通過for loop使用迭代器迭代遍歷整個(gè)鏈表

也可以顯示的使用迭代器

也可以這樣子更直接的使用迭代器。next(it)獲取下一個(gè)迭代對(duì)象。


其實(shí)在C++的STL一直在使用迭代器,無論是向量、棧、鏈表,還是隊(duì)列,都是顯式的利用迭代器。使用的方法都是需要申明一個(gè)迭代器,然后讓這個(gè)可迭代對(duì)象生成一個(gè)iterator。這個(gè)迭代器就可以和索引一樣遍歷可迭代對(duì)象的所有元素,在C++中的迭代器有正向,反向,雙向。迭代器的屬性也有begin,end。迭代的時(shí)候直接it++或者it--進(jìn)行迭代。

下面是C++代碼使用iterator遍歷向量vector



python:for loop的對(duì)象必須是一個(gè)可迭代對(duì)象的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
青龙| 唐海县| 阿荣旗| 洛宁县| 泽普县| 瑞金市| 惠水县| 西安市| 夹江县| 梁河县| 白玉县| 老河口市| 郓城县| 塔河县| 淄博市| 宜章县| 徐汇区| 宿松县| 鹿邑县| 陈巴尔虎旗| 新闻| 会东县| 临清市| 淮安市| 浙江省| 寿光市| 治县。| 承德县| 彭州市| 虎林市| 五寨县| 三台县| 静乐县| 广元市| 水城县| 阿鲁科尔沁旗| 城口县| 平山县| 老河口市| 麻城市| 余庆县|