首页 > 解决方案 > 如何创建一个具有三重循环的加工条?

问题描述

我有一个喜欢的代码

从 tqdm 导入 tqdm 导入时间

for i in tqdm(range(10)):
    for j in tqdm(range(20)):
        for k in tqdm(range(30)):
            time.sleep(0.01)

它将创建三个处理栏

10%|████▍                                       | 1/10 [00:06<00:54,  6.06s/it
50%|█████████████████████▌                     | 10/20 [00:03<00:03,  3.30it/s]
50%|█████████████████████▌                     | 15/30 [00:03<00:03,  3.30it/s]

因为总的迭代次数将是 10x20x30=6000。我们如何制作单个处理栏,但仍然使用 python 3 使用三重循环?结果喜欢

50%|█████████████████████▌                     | 3000/6000 [00:03<00:03,  3.30it/s]

标签: python-3.xtqdm

解决方案


您可以像这样从循环中取消附加 tqdm:

with tqdm(total=6000) as t:

    for i in range(10):
        for j in range(20):
            for k in range(30):
                time.sleep(0.01)
                t.update()

然后,您在循环中执行的任何其他操作都会按预期发生,并且到 6000 的单个进度条仅在最内层循环的每次迭代期间更新。


推荐阅读