在 tqdm 中的 for 循环后更改描述

Are*_*Tor 7 python python-3.x tqdm

是否可以设置描述tqdm是否可以在 for 循环之外

一个简单的例子:

with tqdm(range(100), desc='processing') as pbar:
    x = 0
    for i in pbar:
        x += i
    y = x ** 2
    # 3. set description of pbar 'y = {}'.format(y)'
Run Code Online (Sandbox Code Playgroud)

我应该用什么来代替3.

编辑:更准确地说,我想y在完全执行 for 循环后进行计算,然后我想y在进度条描述中记录该值(替换'processing'描述)。

Kar*_*hoo 14

您可能对 tqdm 的工作原理有一些误解。有一个简单的 inbuit 命令set_description(),用于将 tqdm 进度条的描述设置为其循环。在您的示例代码中,如果您尝试在有评论的地方设置描述,则不会发生任何事情,因为您已经完成了对 pbar 的循环。(尽管这可能只是由于缩进不正确)

这是一个简单的示例,显示了描述如何变化 -

from tqdm import tqdm
import time

pbar = tqdm(range(100), desc='description')

x = 0
for i in pbar:
    x += i
    y = x**2
    pbar.set_description("y = %d" % y)
    time.sleep(0.5)
Run Code Online (Sandbox Code Playgroud)

这将使您能够看到描述在每次循环迭代中如何变化。