国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 牟定县| 石台县| 龙游县| 镇沅| 和平区| 沅江市| 桓仁| 册亨县| 泰和县| 阿拉善盟| 旬阳县| 通榆县| 安乡县| 武汉市| 巢湖市| 岗巴县| 安塞县| 泸定县| 高州市| 安溪县| 海城市| 湾仔区| 中牟县| 汽车| 民权县| 哈密市| 远安县| 余庆县| 华亭县| 垫江县| 江阴市| 定兴县| 伊春市| 通辽市| 嘉荫县| 宕昌县| 中江县| 竹溪县| 资兴市| 安宁市| 新巴尔虎左旗|