【发布时间】:2018-08-25 11:27:24
【问题描述】:
我想知道处理某个列表需要多长时间。
for a in tqdm(list1):
if a in list2:
#do something
但这不起作用。如果我使用for a in tqdm(range(list1)),我将无法检索列表值。
你知道怎么做吗?
【问题讨论】:
标签: python python-3.x list loops tqdm
我想知道处理某个列表需要多长时间。
for a in tqdm(list1):
if a in list2:
#do something
但这不起作用。如果我使用for a in tqdm(range(list1)),我将无法检索列表值。
你知道怎么做吗?
【问题讨论】:
标签: python python-3.x list loops tqdm
import tqdm
for p in tqdm.tqdm([10,50]):
print(p)
或
from tqdm import tqdm
for p in tqdm([10,50]):
print(p)
【讨论】:
我也有这个问题。 就我而言,我写道:
import tqdm
改为
from tqdm import tqdm
【讨论】:
我写了这么多答案,因为我个人在我的迷你项目和项目的不同地方都使用了所有这些。根据问题,有些可能无关紧要,但在其他地方会有用。
list1 = list(range(100))
import tqdm
for x in tqdm.tqdm(list1):
sleep(0.01)
或者
tlist1 = tqdm.tqdm(list1)
for x in tlist1:
sleep(0.01)
基本上,您正在传递列表以创建一个 tqdm 实例。
您可以使用tqdm documentation 中的另一种解决方法:
# DOESN't work well in terminal, but should be ok in Jupyter Notebook
with tqdm.tqdm(total=len(list1)) as t:
for x in list1:
sleep(0.01)
t.update(1)
使用生成器手动更新 trange 对象:
def literate(list1):
t = trange(len(list1))
for x in list1:
t.update(1)
yield x
for x in literate(list1):
sleep(0.01)
自动更新:
def li_iterate(li):
l = iter(li)
for _ in trange(len(li)):
yield next(l)
for x in li_iterate(list1):
sleep(0.01)
除了问题之外,如果您使用的是 pandas 数据框,您可能希望在某个时候使用它(在 google-colaboratory 中):
# %% implies cell magic in google-colab
%%capture
from tqdm.notebook import tqdm as tq
tq().pandas()
def fn(x):
for a in list2:
print(x, a)
import pandas as pd
list1 = list(range(0, 9))
pd.DataFrame(data=list1).progress_apply(fn)
-喜满树
【讨论】:
List 是其中的元素列表,因此如果您执行len(ls),它会为您提供列表中的元素数量。 range 内置函数将遍历范围,因此下面的 for 循环应该适用于 tqdm
from tqdm import tqdm
ls = [i for i in range(0,20000000)]
for i in tqdm(range(len(ls))):
## code goes here ##
pass
【讨论】: