Python中使用arr[::-1]反向遍历列表时如何获取对应原始索引?
结论
使用arr[::-1]切片的方式反向遍历时,可以同时获取元素对应的原始索引,可以配合Python内置的enumerate函数实现。
示例代码
arr = [5, 6, 8] # enumerate 拿到反转后列表的索引,计算得到原始索引 for rev_index, value in enumerate(arr[::-1]): original_index = len(arr) - 1 - rev_index print(original_index, " ", value)
运行输出
和range倒序遍历的输出完全一致:
2 8 1 6 0 5
补充说明
arr[::-1]会生成原列表的反转副本,若原列表体积非常大,会占用额外内存,这种场景下更推荐使用原range倒序遍历,或者用reversed配合enumerate的写法,不需要生成额外的列表副本,写法如下:for original_index, value in reversed(list(enumerate(arr))): print(original_index, " ", value)
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

