jpp*_*jpp 2 python loops jupyter-notebook
我试图跟踪以下代码中的进度:
from toolz import compose
calculator = compose(my_function, list, my_dict.get, tuple)
result = list(zip(*map(calculator, my_values)))
Run Code Online (Sandbox Code Playgroud)
my_values
是一个长度〜1mio的列表.我的第一次尝试是my_function
为该增量添加一个计数器,并在X==500
达到X(例如)的倍数时将其打印出来.
是否有一种pythonic或更简洁的方法来实现这一点,即没有向各种循环添加大量计数器?jupyter笔记本中的进度条也可以.
如果Jupyter中的进度条可以使用tqdm
,我喜欢使用,因为它适用于任何可迭代的.下面是一些示例代码(来自例如略有简化,因为我不得不写my_function
,my_values
等):
def my_function(x):
yield x + 2
my_values = range(1000000)
result = list(zip(*map(my_function, my_values)))
Run Code Online (Sandbox Code Playgroud)
现在只需添加tqdm my_values
(没有进度检查器/计数器堵塞你的代码!)以获得一个很好的进度条:
from tqdm import tqdm
def my_function(x):
yield x + 2
my_values = tqdm(range(1000000))
result = list(zip(*map(my_function, my_values)))
Run Code Online (Sandbox Code Playgroud)
滚过令人敬畏的tqdm进度条:
100%|??????????| 1000000/1000000 [00:04<00:00, 210661.41it/s]
Run Code Online (Sandbox Code Playgroud)
注意我与tqdm项目无关; 我只是喜欢用它. https://github.com/tqdm/tqdm