【问题标题】:how to make a nested tqdm bars on jupyter notebook如何在 jupyter notebook 上制作嵌套的 tqdm 条
【发布时间】:2018-04-04 10:05:39
【问题描述】:

这是嵌套 tqdm 条的示例

import time
import tqdm
for i in tqdm.tqdm(range(3)):
    for j in tqdm.tqdm(range(5)):
        print(i," : ", j)

我在 jupyter notebook 上试了试,但它没有显示任何没有错误的东西!但是,它可以在 ipython 控制台上正常工作!

【问题讨论】:

  • 我来这里是为了发布同样的问题。尽管我对问题的表现不同,但我对这种确切的情况有疑问。而不是更新栏,而是为每次更新打印一个新栏。因此,在发布的代码示例中,我实际上会一个接一个地打印大约 15 个条(实际上,我想更多一些,因为我们也得到一个处于 0 状态的条)。更正:我会得到 3 个小节,因为内循环足够快。在内部循环中添加 time.sleep(1.5),然后你会得到 ~15 条。
  • TL;DR:嵌套“正常工作”,但在 jupyter 中,您需要 from tqdm.notebook import tqdm

标签: python pycharm jupyter-notebook tqdm


【解决方案1】:

我刚刚找到了我要使用的解决方案。解决方案有plenty of examples here

我已经修改了原始帖子中的示例,包括解决方案以及用于可视化目的的时间延迟(最终输出与延迟或不延迟相同)。

from time import sleep
from tqdm import tqdm_notebook
for i in tqdm_notebook(range(3)):
    for j in tqdm_notebook(range(5)):
        sleep(0.1)
        print(i," : ", j)

print("Done!")

最终输出如下所示。在处理过程中,观看起来很愉快(不要跳来跳去或任何疯狂的事情)。


我现在正在做的一个小技巧是让它成为一个超级简单的替代品,就是像这样拉入 tqdm,所以我不必更改任何其他代码:

from time import sleep
from tqdm import tqdm_notebook as tqdm
for i in tqdm(range(3)):
    for j in tqdm(range(5)):
        sleep(0.1)
        print(i," : ", j)

print("Done!")

【讨论】:

  • 关于临时替换:他们考虑过,现在是from tqdm.notebook import tqdm
  • 甚至from tqdm.auto import tqdm
猜你喜欢
  • 1970-01-01
  • 2017-07-01
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
  • 2021-05-14
  • 2019-04-14
相关资源
最近更新 更多