gpt4 book ai didi

python - For 循环迭代,范围从索引 1 重新开始

转载 作者:行者123 更新时间:2023-11-30 22:21:18 25 4
gpt4 key购买 nike

我试图以 2 个索引的步长迭代一个循环,一旦到达末尾,就重新启动相同的循环,但这次从索引 1 而不是零开始。

我已经阅读了堆栈上的不同文章,例如 this使用 while 循环解决方法。但是,我正在寻找一个选项,它只需使用 for 循环中的元素和范围,而不使用 itertool 或其他库或嵌套循环:

这是我的代码:

j = [0,0,1,1,2,2,3,3,9,11]
count = 0
for i in range(len(j)):
if i >= len(j)/2:
print(j[len(j)-i])
count += 1
else:
count +=1
print(j[i*2],i)

这是输出:

0 0
1 1
2 2
3 3
9 4
2
2
1
1
0

循环不会从应该的位置开始。这是所需的输出:

0 0
1 1
2 2
3 3
9 4
0 5
1 6
2 7
3 8
11 9

如何修复它?

最佳答案

您可以通过组合两个 range() 调用来实现此目的,例如:

代码:

j = [0, 0, 1, 1, 2, 2, 3, 3, 9, 11]
for i in (j[k] for k in
(list(range(0, len(j), 2)) + list(range(1, len(j), 2)))):
print(i)

并使用 itertools 解决方案:

import itertools as it
for i in it.chain.from_iterable((it.islice(j, 0, len(j), 2),
it.islice(j, 1, len(j), 2))):
print(i)

结果:

0
1
2
3
9
0
1
2
3
11

关于python - For 循环迭代,范围从索引 1 重新开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48678553/

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