使用Python的enumerate()函式編寫更Pythonic的迴圈

Leoython發表於2019-02-16

enumerate函式
enumerate是一個Python內建函式,一個功能強大的內建函式。其實功能強大不足以形容它, 但是很難用一個詞來形容它的用途。

讓我們來看看一個使用enumerate進行迴圈的例子

names = [`李四`, `張三`, `王二`]
for index, name in enumerate(names):
    print(f`{index}: {value}`) 

下面是這個迴圈的結果

0: 李四
1: 張三
2: 王二

這通常是一個很有用的方式去迴圈,但很多初學者甚至中級開發人員都不知道這一點。通常來說,他們的程式碼會這樣寫(需要注意的是,這是一種不好的寫法)

names = [`李四`, `張三`, `王二`]
for i in range(len(names)):
    print(i, my_items[i])

另外一點是,我們可以指定迴圈的索引,例如

names = [`李四`, `張三`, `王二`]
for index, name in enumerate(names, 1):
    print(f`{index}: {value}`) 

結果如下

1: 李四
2: 張三
3: 王二

關於enumerate的另一個重要的知識點是,他的內部實現使用的是迭代器,所以當需要迴圈的物件特別大的時候我們不用浪費許多資源去全部展開。

相關文章