02 November, 2008

Python Idiom: enumerate

接續 上次 的文章,這次來介紹一個關於迴圈的技巧。 如果想要印出一個 list 的內容,Python 的標準做法是
for item in items:
     print item
但如果要同時把 item 的 index 也印出來,該怎麼做? 大多數學過 C 語言的人 應會想到下面兩種做法
index = 0
for item in items:
     print index, item
     index += 1
或者
for i in range(len(items)):
     print i, items[i]
可是上述兩種做法感覺都有一點累贅, 優雅的 Python 應該有更優雅的做法,那就是利用 enumerate
for (i, item) in enumerate(items):
     print i, item
程式碼更短,而且更容易閱讀。 enumerate(items) 的功用是產生下面的序列
(0, items[0]), (1, items[1]),...

No comments: