在迴圈中獲取索引 陣列下標

2021-07-25 02:51:05 字數 908 閱讀 2601

有人知道如何獲取列表的索引值嗎:

ints = [

8, 23, 45, 12, 78]

當我迴圈這個列表時如何獲得它的索引下標?

如果像c或者php那樣加入乙個狀態變數那就太不pythonic了.

最好的選擇就是用內建函式enumerate

for i in range (0,len(list)): 

print i ,list[i]

但是這種方法有些累贅,使用內建enumerrate函式會有更加直接,優美的做法,先看看enumerate的定義:

def enumerate(collection): 

'generates an indexed series:  (0,coll[0]), (1,coll[1]) ...'      

i = 0 

it = iter(collection) 

while 1: 

yield (i, it.next()) 

i += 1

enumerate會將陣列或列表組成乙個索引序列。使我們再獲取索引和索引內容的時候更加方便如下:

for index,text in enumerate(list)): 

print index ,text

在cookbook裡介紹,如果你要計算檔案的行數,可以這樣寫:

count = len(open(thefilepath,『ru』).readlines())

前面這種方法簡單,但是可能比較慢,當檔案比較大時甚至不能工作,下面這種迴圈讀取的方法更合適些。

count = -1 

for count,line in enumerate(open(thefilepath,『ru』)): 

pass

count += 1

在Pythonfor迴圈中如何獲取迴圈次數?

在python的for迴圈裡,迴圈遍歷可以寫成 for item in list print item 它可以遍歷列表中的所有元素,但是有什麼方法可以知道到目前為止我迴圈了多少次?想到的替代方案是 count 0 for item in list print item count 1 if coun...

已解決 在for迴圈中嵌入if語句,建立陣列

python是個很棒 很簡潔的語言。python可以用for迴圈很簡潔地建立陣列 還可以往裡面巢狀if語句,太棒了!博主突發奇想用一行 寫九九乘法表 目錄1 簡單的用for迴圈建立陣列 2 再多乙個for 3 加入if語句 4 加入else語句 5 示例 用一行 寫九九乘法表 參考 能用一行 寫陣列...

Java增強for迴圈中獲取index

b 前提測試資料 b string data new string listdatalist arrays.aslist data b 普通的for迴圈 b for int i 0 i datalist.size i b 增強for迴圈 獲取index需要定義額外的變數 b int i 0 for ...