2015-02-11 75 views
0

當我通過一個列表枚舉時,是否有一種預期的pythonic方式來獲取提供的最後一個索引值?Pythonic方式得到枚舉的最後一個索引值

東西會得到這樣的等價物:

highest = None 
for index, value in enumerate(long_list): 
    # do stuff with index and value 
    highest = index 
return highest 

這種做法,我不喜歡。它有數百個不必要的變量分配。而且,它很醜。

背景:我使用數字作爲關係表中的索引,使用RDBS和SQLAlchemy構建了一個有序列表。此外,我還將列表中使用的最高索引號存儲在列表中,以便輕鬆追加新條目(無需在關係表上進行額外的最大查找)。對於什麼時候出現問題,無論出於何種原因,我都包含一個reorg函數,它重建從0開始的索引(以消除任何間隙)。我通過for-enumerate迭代關聯表。之後,我需要對它們進行計數或最大化索引,以獲得列表中新的最高索引值。這有點錯誤我。

對此提出建議?最好是在2.7中有效的東西。

+4

最後一個索引?像'len(long_list) - 1'? – njzk2 2015-02-11 19:06:37

+0

'long_list [-1]'獲取列表中的最後一個元素,'len(long_list) - 1'得到列表中的最後一個索引 – 2015-02-11 19:09:46

+0

這就是我現在正在做的。但是後面的列表更復雜一些,就像一個Python列表,所以可能會以更復雜的方式重新計算該值。只是感覺不對,當我剛剛在循環中做到這一點。 – kratenko 2015-02-11 19:15:40

回答

2

獲取列表

len(mylist)-1 

的最後一個索引爲了讓您可以簡單地使用負指數列表的最後一個元素。

mylist[-1]