2015-02-11 76 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]