位置:首頁 > 軟件操作教程 > 編程開發(fā) > Python > 問題詳情

在python,索引迭代

提問人:楊紫紅發(fā)布時間:2020-11-26
Python中,迭代永遠是取出元素本身,而非元素的索引。
對于有序集合,元素確實是有索引的。有的時候,我們確實想在 for 循環(huán)中拿到索引,
怎么辦?
方法是使用 enumerate() 函數:
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> for index, name in enumerate(L):
...     print index, '-', name
... 
0 - Adam
1 - Lisa
2 - Bart
3 - Paul

使用 enumerate() 函數,我們可以在for循環(huán)中同時綁定索引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循環(huán)又可以進一步簡寫為:
for index, name in enumerate(L):
    print index, '-', name
這樣不但代碼更簡單,而且還少了兩條賦值語句。
可見,索引迭代也不是真的按索引訪問,而是由 enumerate() 函數自動把每個元素變
成 (index, element) 這樣的tuple,再迭代,就同時獲得了索引和元素本身。

繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部