华南俳烁实业有限公司

python

當(dāng)前位置:中華考試網(wǎng) >> python >> python編程基礎(chǔ) >> 文章內(nèi)容

怎樣使用python3代碼創(chuàng)建迭代器?

來源:中華考試網(wǎng)  [2020年12月2日]  【

  我們在處理編程問題的時候,為了遍歷的方便所以創(chuàng)造了迭代器,但是使用無法解決查詢元素的下標(biāo)問題。在二者之間不能兼得,但同時這兩種功能我們都是要實(shí)現(xiàn)的,在這個時候,enumerate函數(shù)就誕生了。通俗的來講,通過enumerate實(shí)現(xiàn)的是一個新的迭代器,在功能的使用上兼顧了迭代器和下標(biāo),接下來我們看看具體用enumerate建立新迭代器的方法。

  首先介紹的是enumerate函數(shù)。在我們?nèi)粘>幊痰倪^程當(dāng)中,經(jīng)常會遇到一個問題。

  在C語言以及一些古老的語言當(dāng)中是沒有迭代器這個概念的,所以我們要遍歷數(shù)組或者是容器的時候,往往只能通過下標(biāo)。有了迭代器之后,我們遍歷的過程方便了很多,我們可以直接用一個變量去迭代一個容器當(dāng)中的值。最簡單的例子就是數(shù)組的遍歷,比如我們要遍歷items這個數(shù)組。我們可以直接:

  for item in items:

  通過迭代器的方式我們可以很輕 松地遍歷數(shù)組,而不再需要下標(biāo),也不需要計算數(shù)組的長度了。但是如果我們在循環(huán)體當(dāng)中需要知道元素的下標(biāo)該怎么辦?

  難道我們真的只能在下標(biāo)和迭代器當(dāng)中選擇一個嗎,比如在循環(huán)體的外面添加一個變量來記錄下標(biāo)?

  idx = 0

  for item in items:

  operation()

  idx += 1

  這樣可以解決問題,但是很麻煩,一點(diǎn)也不簡潔,用專業(yè)的話來說一點(diǎn)也不pythonic(符合Python標(biāo)準(zhǔn)的代碼)。為了追求pythonic,于是有了enumerate函數(shù)。

  用法舉例

  c = [b for a,b in enumerate('11100101') if b != '0']

  print(len(c))

  打印結(jié)果:

  5

  enumerate(sequence,[start=0]) 默認(rèn)是從0開始

  example = (('abcd','efgh'))

  for i,j in enumerate(example,start=1):

  print(i,j)

python課程免費(fèi)試聽預(yù)約

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  打印結(jié)果為:

  1 abcd

  2 efgh

  以上就是我們用enumerate函數(shù)來創(chuàng)造新的迭代器的方法,同時講了一下enumerate的由來和簡單的使用,還沒有完全掌握的小伙伴,可以再多看看上面的代碼。

  如果你現(xiàn)在想學(xué)習(xí)python,贏取高薪工作機(jī)會,非常簡單,填寫下面信息,學(xué)好python技術(shù)高薪工作機(jī)會唾手可得。

責(zé)編:fushihao

上一篇:python3中要如何用dir查看對象屬性?

下一篇: 沒有了

  • 會計考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學(xué)歷考試
宜城市| 汕尾市| 虎林市| 九江县| 绥棱县| 乌兰浩特市| 塔河县| 丘北县| 田林县| 建德市| 两当县| 监利县| 攀枝花市| 乐平市| 嵩明县| 崇礼县| 辽源市| 西乌珠穆沁旗| 镇坪县| 乐平市| 东源县| 西华县| 炎陵县| 贵定县| 石城县| 天全县| 从化市| 夹江县| 绥棱县| 仙桃市| 丹阳市| 溧阳市| 英吉沙县| 淮滨县| 涪陵区| 滦平县| 陆河县| 格尔木市| 法库县| 方正县| 汽车|