【问题标题】:Pythonic way to get last index value of enumerate获取枚举的最后一个索引值的 Pythonic 方法
【发布时间】:2015-02-11 19:05:52
【问题描述】:

当我枚举一个列表时,是否有一种预期的、pythonic 的方式来获取提供的最后一个索引值?

相当于这个的东西:

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

我不喜欢这种方法。它有数百个不必要的变量赋值。还有就是丑。

背景:我有一个使用 RDBS 和 SQLAlchemy 构建的有序列表,使用数字作为关系表中的索引。我还将最高使用的索引号存储在列表中,以便轻松附加新条目(无需在关系表上进行额外的最大查找)。当事情变得一团糟时,无论出于何种原因,我都包含了一个 reorg 函数,它从 0 开始重建索引(以消除任何间隙)。我通过对关联表进行枚举迭代来实现这一点。之后,我需要对它们进行计数或最大化索引,以获得列表表的新的最高索引值。这有点让我烦恼。

建议?最好是在 2.7 中工作的东西。

【问题讨论】:

  • 最后一个索引?类似len(long_list) - 1?
  • long_list[-1] 获取列表中的最后一个元素,len(long_list) - 1 获取列表中的最后一个索引
  • 这就是我现在正在做的事情。但它背后的列表更复杂,就像一个 python 列表,因此可能会以更复杂的方式重新计算该值。只是感觉不对,当我在循环中这样做时。
  • 如果您在这一步之前已经在遍历列表,那为什么不存储计数呢?

标签: python enumerate


【解决方案1】:

获取列表的最后一个索引

len(mylist)-1

要获取列表的最后一个元素,您可以简单地使用负索引。

mylist[-1]

【讨论】:

    猜你喜欢
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 2019-03-14
    相关资源
    最近更新 更多