Python 在加载屏幕的每个循环中返回列表的下一个元素
我想制作一个加载屏幕,在这个屏幕上,它每秒钟打印一张a、b或c,替换上一张,然后重新开始。这是我试过的,但不起作用。它每秒钟只打印一次: 从时间上导入睡眠 对于范围10中的i: 睡眠1 PrintNextite['\ra','\rb','\rc'],end=''Python 在加载屏幕的每个循环中返回列表的下一个元素,python,list,Python,List,我想制作一个加载屏幕,在这个屏幕上,它每秒钟打印一张a、b或c,替换上一张,然后重新开始。这是我试过的,但不起作用。它每秒钟只打印一次: 从时间上导入睡眠 对于范围10中的i: 睡眠1 PrintNextite['\ra','\rb','\rc'],end='' 您将在每次迭代中重新创建生成器。您可以使用此处在发电机周围继续循环: from itertools import cycle from time import sleep l = cycle(['\ra', '\rb', '\rc']
您将在每次迭代中重新创建生成器。您可以使用此处在发电机周围继续循环:
from itertools import cycle
from time import sleep
l = cycle(['\ra', '\rb', '\rc'])
for i in range(10):
sleep(1)
print(next(l), end=' ')
您将在每次迭代中重新创建生成器。您可以使用此处在发电机周围继续循环:
from itertools import cycle
from time import sleep
l = cycle(['\ra', '\rb', '\rc'])
for i in range(10):
sleep(1)
print(next(l), end=' ')
您需要在循环之外创建对象,否则它将在每秒钟重新创建一次,因此您总是只获得第一个元素:
import itertools
from time import sleep
progress = itertools.cycle(['\ra', '\rb', '\rc'])
for i in range(10):
sleep(1)
print(next(progress), end=' ')
您可以也可能应该像我在这里所做的那样使用,使选项仅在列表结束时循环返回开始。您需要在循环之外创建对象,否则它将在每秒钟重新创建,因此您始终只获得第一个元素:
import itertools
from time import sleep
progress = itertools.cycle(['\ra', '\rb', '\rc'])
for i in range(10):
sleep(1)
print(next(progress), end=' ')
您可以也可能应该像我在这里所做的那样使用,使选项在列表结束时循环返回开始。它只打印a,因为您每次打印时都在生成一个新的迭代器。它只打印a,因为您每次打印时都在生成一个新的迭代器。对于itertools.islicel中的x,10:printx等,对于itertools.islicel中的x,10:printx等。这就够了,谢谢。或者,是否有可能不使用Itertools?有没有一种简单的Python方法可以反复浏览列表?@NicolasGervais itertools非常简单,您可能应该使用它。但如果你想学习,你可以随时检查我答案中的链接,并将其作为指导原则,自己重新实施循环:我想我会通过;这就够了,谢谢。或者,是否有可能不使用Itertools?有没有一种简单的Python方法可以反复浏览列表?@NicolasGervais itertools非常简单,您可能应该使用它。但如果你想学习,你可以随时检查我答案中的链接,并将其作为指导原则,自己重新实施循环:我想我会通过;