gpt4 book ai didi

Python枚举列表设置开始索引但不增加结束计数

转载 作者:太空狗 更新时间:2023-10-29 22:15:44 25 4
gpt4 key购买 nike

我想遍历一个计数器从零开始但列表起始索引为 1 的列表,例如:

valueList = [1, 2, 3, 4]
secondList = ['a', 'b', 'c', 'd']

for i, item in enumerate(valueList, start=1):
print(secondList[i])

代码因索引超出范围错误而失败(我意识到这是因为 i 以列表的长度 -1 加上起始值结束,并且 python 列表是零索引的,因此以这种方式使用 i 来调用第 i 个另一个列表中的元素无效)。以下是可行的,但添加的 i 大于零的测试看起来不符合 Python 风格。

valueList = [1, 2, 3, 4]
secondList = ['a', 'b', 'c', 'd']

for i, item in enumerate(valueList, start=0):
if i > 0:
print(secondList[i])

枚举不是正确的选择,还有别的办法吗?

最佳答案

听起来好像您想对列表进行切片;仍然在 one 处启动 enumerate() 以获得相同的索引:

for i, item in enumerate(valueList[1:], start=1):

然后从 second 元素开始遍历 valueList,并匹配索引:

>>> valueList = [1, 2, 3, 4]
>>> secondList = ['a', 'b', 'c', 'd']
>>> for i, item in enumerate(valueList[1:], start=1):
... print(secondList[i])
...
b
c
d

在这种情况下,我只使用 zip() 代替,也许与 itertools.islice() 结合使用:

from itertools import islice

for value, second in islice(zip(valueList, secondList), 1, None):
print(value, second)

islice() 调用会为您跳过第一个元素:

>>> from itertools import islice
>>> for value, second in islice(zip(valueList, secondList), 1, None):
... print(value, second)
...
2 b
3 c
4 d

关于Python枚举列表设置开始索引但不增加结束计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29181284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com