You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python2中带步长的range循环时如何获取列表对应元素或索引

实现方案

你原来的循环逻辑生成的迭代次数和列表长度完全一致,直接用enumerate或者zip配对即可,两种需求的实现方式如下:

输出带列表元素的格式

list_of_names = ["james", "jack", "jill"]

for i, name in zip(range(1, len(list_of_names) * 6 + 1, 7), list_of_names):
    print((i, i + 6, name))

运行后输出:

(1, 7, 'james')
(8, 14, 'jack')
(15, 21, 'jill')

输出带列表索引的格式

list_of_names = ["james", "jack", "jill"]

for idx, i in enumerate(range(1, len(list_of_names) * 6 + 1, 7)):
    print((i, i + 6, idx))

运行后输出:

(1, 7, 0)
(8, 14, 1)
(15, 21, 2)

原理解释

你构造的range(1, len(list_of_names) * 6 + 1, 7)生成的元素个数和list_of_names的长度完全相等,二者一一对应,所以不管是用zip直接配对元素,还是用enumerate获取迭代索引去取列表元素,都不会出现错位问题。Python2中print输出时需要将三个参数用括号包裹为元组,才能输出你需要的带括号的格式。

内容的提问来源于stack exchange,提问作者user001

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:15:04