Python實(shí)現(xiàn)迭代時(shí)使用索引的方法示例
本文實(shí)例講述了Python實(shí)現(xiàn)迭代時(shí)使用索引的方法。分享給大家供大家參考,具體如下:
索引迭代
Python中,迭代永遠(yuǎn)是取出元素本身,而非元素的索引。
對于有序集合,元素確實(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()
的特殊語法。實(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)一步簡寫為:
for index, name in enumerate(L): print index, '-', name
這樣不但代碼更簡單,而且還少了兩條賦值語句。
可見,索引迭代也不是真的按索引訪問,而是由 enumerate()
函數(shù)自動(dòng)把每個(gè)元素變成 (index, element) 這樣的tuple
,再迭代,就同時(shí)獲得了索引和元素本身。
同時(shí),也可以采用zip的方法給迭代對象加上索引
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開始),請考慮如何在迭代中打印出來。
提示:考慮使用zip()
函數(shù)和range()
函數(shù)
代碼如下:
L = ['Adam', 'Lisa', 'Bart', 'Paul'] for index, name in zip(range(1, 5), L): print index, '-', name
輸出結(jié)果為:
1 - Adam
2 - Lisa
3 - Bart
4 - Paul
索引成功加上
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字典操作技巧匯總》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python實(shí)現(xiàn)獲取網(wǎng)站PR及百度權(quán)重
這篇文章主要介紹了Python實(shí)現(xiàn)獲取網(wǎng)站PR及百度權(quán)重,本文使用傳參的方式請求站長工具和谷歌工具獲取PR值和百度權(quán)重,需要的朋友可以參考下2015-01-01python中使用smtplib和email模塊發(fā)送郵件實(shí)例
python腳本發(fā)郵件,一般會(huì)用到smtplib和email這兩個(gè)模塊。看看該模塊怎么使用,先看smtplib模塊。 smtplib模塊定義了一個(gè)簡單的SMTP客戶端,可以用來在互聯(lián)網(wǎng)上發(fā)送郵件2014-04-04python生成tensorflow輸入輸出的圖像格式的方法
本篇文章主要介紹了python生成tensorflow輸入輸出的圖像格式的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02將Emacs打造成強(qiáng)大的Python代碼編輯工具
這篇文章主要介紹了將Emacs打造成強(qiáng)大的Python代碼編輯工具的方法,人們常說Vim是編輯器之神而Emacs是神的編輯器:)需要的朋友可以參考下2015-11-11