Python enumerate()簡單總結

enumerate的簡單總結
首先,enumerate()是python的一個內置函數。
語法:
enumerate(sequence, [start=0])
參數:
sequence – 一個序列、迭代器或其他支持迭代對象。
start – 下標起始位置。
返回值:
返回 enumerate(枚舉) 對象

1enumerate()對於一個可迭代的(iterable)/可遍歷的對象(如列表、字符串),enumerate將其組成一個索引序列,利用它可以同時獲得索引和值。

2返回一個計數器和元素值。計數器默認爲0,也是元素的索引。如果不想在0開始你的計數,只需要使用可選start參數來設置偏移量。
3通過for循環得到enumerate裏的索引計數。

a.將可迭代對象(Iterable)組成一個索引序列:

list1 = ['a','b','c','d']
for index, item in enumerate(list1):
    print index, item
>>>
0 a
1 b
2 c
3 d

b.迭代器(Iterator)組成一個索引序列:

generator_ex = (x*x for x in range(10))
print(list(enumerate(generator_ex)))
>>>
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49), (8, 64), (9, 81)]

c.改變索引起始值:

list1 = ['a','b','c','d']
for index, item in enumerate(list1,start=100):
    print index, item
>>>
100 a
101 b
102 c
103 d

擴展:
文件統計行數:

count = len(open(filepath, 'r').readlines())

上述操作,對於相對比較小的文件可以使用該方法,可是對於數據量相當大的文件就不適用了,否則會造成速度緩慢甚至不能正常工作。

count = 0
for index, line in enumerate(open(filepath,'r')): 
    count += 1

使用enumerate() 函數遍歷文件,在以count作爲累加器,求得文件行數。open函數相當於創建了一個迭代器,這樣消耗的內存數量將大大減小。

一個關於程序員雜談的公衆號,歡迎關注!
在這裏插入圖片描述

有不足之處望留言指正

——————END——————
Programmer:柘月十七

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章