gpt4 book ai didi

python - 如何进行从 k 到给定数字并返回到零的无限循环?

转载 作者:行者123 更新时间:2023-12-02 09:39:10 25 4
gpt4 key购买 nike

我想要类似的东西(如果从2开始):

2, 3, ..., n-1, n, n-1, ..., 3, 2, 1, 0, 1, 2, 3, ...(永远)

还有比这更简单的吗?

def print_numbers_forth_and_back_forever(first_number, upper_limit):
for i in range(first_number, upper_limit):
print(i)
while True:
# back from n to 0
for i in reversed(range(0, upper_limit+1)):
print(i)
# 1 to n-1
for i in range(1, upper_limit):
print(i)


print_numbers_forth_and_back_forever(4, 10)

最佳答案

以下使用itertools将提供一个应满足要求的生成器 - 只需更改range(a, b)的参数即可更改输出:

from itertools import cycle, chain

r = range(10)
r_reversed = reversed(r[1:-1])
gen = cycle(chain(r, r_reversed))

输出:

>>> from itertools import islice
>>> list(islice(gen, 20))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1]

要从任意整数开始,请使用 islicestart 参数,如下所示:

>>> list(islice(gen, 4, 20))
[4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1]

关于python - 如何进行从 k 到给定数字并返回到零的无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59877422/

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