国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

跟老齊學(xué)Python之讓人歡喜讓人憂的迭代

2020-02-23 06:03:06
字體:
供稿:網(wǎng)友

哦,這就是真正牛X的程序員。不過,他也僅僅是牛X罷了,還不是大神。大神程序員是什么樣兒呢?他是掃地僧,大隱隱于市。

先搞清楚這些名詞再說別的:

循環(huán)(loop),指的是在滿足條件的情況下,重復(fù)執(zhí)行同一段代碼。比如,while語句。
迭代(iterate),指的是按照某種順序逐個(gè)訪問列表中的每一項(xiàng)。比如,for語句。
遞歸(recursion),指的是一個(gè)函數(shù)不斷調(diào)用自身的行為。比如,以編程方式輸出著名的斐波納契數(shù)列。
遍歷(traversal),指的是按照一定的規(guī)則訪問樹形結(jié)構(gòu)中的每個(gè)節(jié)點(diǎn),而且每個(gè)節(jié)點(diǎn)都只訪問一次。
對(duì)于這四個(gè)聽起來高深莫測(cè)的詞匯,在教程中,已經(jīng)涉及到了一個(gè)——循環(huán)(loop),本經(jīng)主要介紹一下迭代(iterate),看官在網(wǎng)上google,就會(huì)發(fā)現(xiàn),對(duì)于迭代和循環(huán)、遞歸之間的比較的文章不少,分別從不同角度將它們進(jìn)行了對(duì)比。這里暫不比較,先搞明白python中的迭代。之后適當(dāng)時(shí)機(jī)再比較,如果我不忘記的話,哈哈。

逐個(gè)訪問

在python中,訪問對(duì)象中每個(gè)元素,可以這么做:(例如一個(gè)list)

代碼如下:
>>> lst
['q', 'i', 'w', 's', 'i', 'r']
>>> for i in lst:
...     print i,
...
q i w s i r

除了這種方法,還可以這樣:

代碼如下:
>>> lst_iter = iter(lst)    #對(duì)原來的list實(shí)施了一個(gè)iter()
>>> lst_iter.next()         #要不厭其煩地一個(gè)一個(gè)手動(dòng)訪問
'q'
>>> lst_iter.next()
'i'
>>> lst_iter.next()
'w'
>>> lst_iter.next()
's'
>>> lst_iter.next()
'i'
>>> lst_iter.next()
'r'
>>> lst_iter.next()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

做為一名優(yōu)秀的程序員,最佳品質(zhì)就是“懶惰”,當(dāng)然不能這樣一個(gè)一個(gè)地敲啦,于是就:

代碼如下:
>>> while True:
...     print lst_iter.next()
...
Traceback (most recent call last):      #居然報(bào)錯(cuò),而且錯(cuò)誤跟前面一樣?什么原因
  File "<stdin>", line 2, in <module>
StopIteration

>>> lst_iter = iter(lst)                #那就再寫一遍,上面的錯(cuò)誤暫且擱置,回頭在研究
>>> while True:
...     print lst_iter.next()
...
q                                       #果然自動(dòng)化地讀取了

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜州市| 中超| 师宗县| 庆安县| 镇远县| 天祝| 承德县| 班玛县| 岚皋县| 广南县| 稻城县| 长子县| 万全县| 永泰县| 张家港市| 靖西县| 浦江县| 望都县| 海晏县| 威远县| 阿勒泰市| 花莲县| 巫溪县| 绩溪县| 青河县| 老河口市| 绥棱县| 海林市| 江孜县| 广平县| 兴宁市| 鲜城| 射洪县| 昌乐县| 马鞍山市| 惠东县| 通辽市| 阿拉善右旗| 灵石县| 招远市| 漾濞|