如何解决Python中tqdm和zip一起用进度条不显示问题
作者:uruz_L
这篇文章主要介绍了如何解决Python中tqdm和zip一起用进度条不显示问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Python中tqdm和zip一起用进度条不显示
在下面这个例子中,tqdm可以正常使用:
from tqdm import tqdm from time import sleep for _ in tqdm(range(10)): sleep(0.1)
但是在下面这个例子里面,将tqdm和zip一起使用,不显示进度条
for _, _ in tqdm(zip(range(10), range(10))): sleep(0.1)
在stackoverflow上有解决方案,使用tqdm中contrib包里面的tzip,相当于上面的功能,并且正常显示进度条,前提是tqdm版本>=4.42.0
from tqdm.contrib import tzip from time import sleep for _, _ in tzip(range(10), range(10)): sleep(0.1)
当 tqdm 遇上 enumerate
tqdm
是一个可以显示进度条的模块
pip install tqdm # 安装
from tqdm import tqdm for item in tqdm(range(100)): # do something >>> # output 100%|██████████████████████████████████████| 100/100 [00:00<00:00, 60159.27it/s]
enumerate()
函数是python
的内置函数,可以同时遍历 lt
中的元素及其索引,
如下,i
是索引,item
是lt
中的元素
from tqdm import tqdm lt=['a','b','c'] for i,item in enumerate(lt): print(i,item) >>> # output 0 a 1 b 2 c
tqdm
和 enumerate()
结合:
from tqdm import tqdm lt=['a','b','c'] for i,item in enumerate(tqdm(lt)): print(i, item)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。