python中迭代器的使用得到元素的索引


在Python中,迭代永遠是取出元素本身,而不能取到元素的索引。如果想獲取元素的索引,
1:可以使用enumerate() 函數
例如:names = ['aa', 'bb', 'cc', 'dd']
for index, name in enumerate(names):
  print index, '-', name

得到結果:
0 - aa
1 - bb
2 - cc
3 - dd
使用 enumerate() 函數,我們可以在for循環中同時綁定索引index和元素name。
使用enumerate() 函數其實是把:

['aa', 'bb', 'cc', 'dd']
變成了tuple
類似: [(0, 'aa'), (1, 'bb'), (2, 'cc'), (3, 'dd')] 因此,迭代的每一個元素實際上是一個tuple:
索引迭代也不是真的按索引訪問,而是由 enumerate() 函數自動把每個元素變成 (index, element) 這樣的tuple,再迭代,就同時獲得了索引和元素本身。
2:使用zip函數
zip()函數可以把兩個 list 變成一個 list: >>> zip([10, 20, 30], ['A', 'B', 'C']) [(10, 'A'), (20, 'B'), (30, 'C')] 在迭代 ['aa', 'bb', 'cc', 'dd'] 時,如果我們想打印出名次 - 名字(名次從1開始),請考慮如何在迭代中打印出來。 提示:考慮使用zip()函數和range()函數 L = ['aa', 'bb', 'cc', 'dd'] ans = zip([1,2,3,4],L) for index, name in ans: print index, '-', name
得到結果:
0 - aa
1 - bb
2 - cc
3 - dd



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM