gpt4 book ai didi

python - Python 中索引的循环范围

转载 作者:太空宇宙 更新时间:2023-11-04 02:06:12 25 4
gpt4 key购买 nike

我正在尝试处理向量的批处理

假设,我有这个向量

v = [10, 20, 30, 40, 70, 80, 90]

我想每三个元素打印一次,如果到达末尾,则返回开头并取第一个元素,依此类推。例如,输出类似于

10、20、30

40、70、80

90, 10, 20 <== 重新开始

30、40、70

80, 90, 10 <== 重新开始

等等……

我知道我可以创建一个函数并使用模块计算开始和结束索引,但我在想是否有一种方法可以使用 sintaxis,比如

v[8:10 % 9]  #would print v[8], v[0] and v[1]

我知道您可以对单个索引 v[index % len(v)] 执行此操作,但是否可以对范围 v[range % len(v)] 执行此操作?

最佳答案

虽然可以计算索引,但我会使用 itertools.cycle使用 zip(*[] * x) 石斑鱼:

from itertools import cycle

v = [10, 20, 30, 40, 70, 80, 90]

n = 10

for index, *group in zip(range(n), *[cycle(v)] * 3):
print(group)

n 更改为您想要循环的次数。输出:

[10, 20, 30]
[40, 70, 80]
[90, 10, 20]
[30, 40, 70]
[80, 90, 10]
[20, 30, 40]
[70, 80, 90]
[10, 20, 30]
[40, 70, 80]
[90, 10, 20]

关于python - Python 中索引的循环范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54665231/

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