在python列表中跟踪进度(map(…))

2024-05-23 21:10:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试跟踪以下代码的进度:

from toolz import compose
calculator = compose(my_function, list, my_dict.get, tuple)
result = list(zip(*map(calculator, my_values)))

my_values是长度为~1mio的列表。我的第一个尝试是向my_function添加一个计数器,当达到X的倍数(例如X==500)时,它会递增并打印出来。在

是否有一种Python式或更干净的方法来实现这一点,即不向各种循环添加大量计数器?jupyter笔记本中的进度条也可以。在


Tags: compose代码fromimportgetmy计数器function
1条回答
网友
1楼 · 发布于 2024-05-23 21:10:40

如果Jupyter中的进度条可以工作,我喜欢使用tqdm,因为它适用于任何iterable。下面是一些示例代码(由于我必须编写my_functionmy_values等,因此从您的示例中稍作简化):

def my_function(x):
    yield x + 2

my_values = range(1000000)

result = list(zip(*map(my_function, my_values))) 

现在只需在my_values上添加tqdm(没有进度检查器/计数器阻塞代码!)要获得一个不错的进度条:

^{pr2}$

它在awesome TQM进度条中滚动:

100%|██████████| 1000000/1000000 [00:04<00:00, 210661.41it/s]

请注意,我与TQM项目无关;我只是喜欢使用它。https://github.com/tqdm/tqdm

相关问题 更多 >