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

首頁 > 編程 > Python > 正文

Python實現迭代時使用索引的方法示例

2020-02-15 21:38:10
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現迭代時使用索引的方法。分享給大家供大家參考,具體如下:

索引迭代

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

對于有序集合,元素確實是有索引的。有的時候,我們確實想在 for 循環中拿到索引,怎么辦?

方法是使用 enumerate()函數:

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> for index, name in enumerate(L):...   print index, '-', name...0 - Adam1 - Lisa2 - Bart3 - Paul

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

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

變成了類似:

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

因此,迭代的每一個元素實際上是一個tuple:

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

如果我們知道每個tuple元素都包含兩個元素,for循環又可以進一步簡寫為:

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

這樣不但代碼更簡單,而且還少了兩條賦值語句。

可見,索引迭代也不是真的按索引訪問,而是由 enumerate()函數自動把每個元素變成 (index, element) 這樣的tuple,再迭代,就同時獲得了索引和元素本身。

同時,也可以采用zip的方法給迭代對象加上索引

zip()函數可以把兩個 list 變成一個 list:

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

在迭代 ['Adam', 'Lisa', 'Bart', 'Paul'] 時,如果我們想打印出名次 - 名字(名次從1開始),請考慮如何在迭代中打印出來。

提示:考慮使用zip()函數和range()函數

代碼如下:

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

索引成功加上

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python字典操作技巧匯總》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 色达县| 屏南县| 旬阳县| 河津市| 福泉市| 赤城县| 玉溪市| 长沙县| 廉江市| 永年县| 凌海市| 新巴尔虎左旗| 新沂市| 玉门市| 富顺县| 广安市| 武穴市| 哈巴河县| 修文县| 五华县| 丰宁| 饶河县| 甘孜县| 通渭县| 墨竹工卡县| 嘉峪关市| 冕宁县| 遵义县| 洪江市| 广丰县| 修水县| 鄂伦春自治旗| 上虞市| 宁城县| 永吉县| 墨玉县| 伊春市| 潼关县| 安化县| 永仁县| 阿拉善左旗|