索引迭代

Python中,迭代永遠(yuǎn)是取出元素本身,而非元素的索引。

對(duì)于有序集合,元素確實(shí)是有索引的。有的時(shí)候,我們確實(shí)想在 for 循環(huán)中拿到索引,怎么辦?

方法是使用 enumerate() 函數(shù):

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> for index, name in enumerate(L):
...     print index, '-', name
... 
0 - Adam
1 - Lisa
2 - Bart
3 - Paul

使用 enumerate() 函數(shù),我們可以在for循環(huán)中同時(shí)綁定索引index和元素name。但是,這不是 enumerate() 的特殊語(yǔ)法。實(shí)際上,enumerate() 函數(shù)把:

['Adam', 'Lisa', 'Bart', 'Paul']

變成了類似:

[(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]

因此,迭代的每一個(gè)元素實(shí)際上是一個(gè)tuple:

for t in enumerate(L):
    index = t[0]
    name = t[1]
    print index, '-', name

如果我們知道每個(gè)tuple元素都包含兩個(gè)元素,for循環(huán)又可以進(jìn)一步簡(jiǎn)寫(xiě)為:

for index, name in enumerate(L):
    print index, '-', name

這樣不但代碼更簡(jiǎn)單,而且還少了兩條賦值語(yǔ)句。

可見(jiàn),索引迭代也不是真的按索引訪問(wèn),而是由 enumerate() 函數(shù)自動(dòng)把每個(gè)元素變成 (index, element) 這樣的tuple,再迭代,就同時(shí)獲得了索引和元素本身。

zip()函數(shù)可以把兩個(gè) list 變成一個(gè) list:

>>> zip([10, 20, 30], ['A', 'B', 'C'])
[(10, 'A'), (20, 'B'), (30, 'C')]

在迭代 ['Adam', 'Lisa', 'Bart', 'Paul'] 時(shí),如果我們想打印出名次 - 名字(名次從1開(kāi)始),可以這樣寫(xiě):

L = ['Adam', 'Lisa', 'Bart', 'Paul']
for index, name in zip(range(1,5),L):
    print index, '-', name

1 - Adam
2 - Lisa
3 - Bart
4 - Paul
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 最近在慕課網(wǎng)學(xué)習(xí)廖雪峰老師的Python進(jìn)階課程,做筆記總結(jié)一下重點(diǎn)。 基本變量及其類型 變量 在Python中,...
    victorsungo閱讀 1,970評(píng)論 0 5
  • 一、python 變量和數(shù)據(jù)類型 1.整數(shù) Python可以處理任意大小的整數(shù),當(dāng)然包括負(fù)整數(shù),在Python程序...
    績(jī)重KF閱讀 2,032評(píng)論 0 1
  • Python中,迭代永遠(yuǎn)是取出元素本身,而非元素的索引。 對(duì)于有序集合,元素確實(shí)是有索引的。有的時(shí)候,我們確實(shí)想在...
    OoYoO閱讀 167評(píng)論 0 0
  • Python中,迭代永遠(yuǎn)是取出元素本身,而非元素的索引。 對(duì)于有序集合,元素確實(shí)是有索引的。有的時(shí)候,我們確實(shí)想在...
    mingminy閱讀 253評(píng)論 0 0
  • 目錄 I陰影里的唐太宗 上一章 I第一卷 雄姿英發(fā)少年郎【一】龍種自與常人殊 撰文 I容藍(lán) 【二】小荷初露尖尖角 ...
    容藍(lán)閱讀 559評(píng)論 19 9

友情鏈接更多精彩內(nèi)容