3

我想知道处理某个列表需要多长时间。

for a in tqdm(list1):
    if a in list2:
        #do something

但这不起作用。如果我使用for a in tqdm(range(list1))我将无法检索列表值。

你知道怎么做吗?

4

4 回答 4

18
import tqdm

for p in tqdm.tqdm([10,50]):
    print(p)

或者

from tqdm import tqdm

for p in tqdm([10,50]):
    print(p)
于 2018-12-06T14:37:43.013 回答
4

我也有这个问题。就我而言,我写道:

import tqdm

反而

from tqdm import tqdm
于 2019-04-09T13:53:30.990 回答
2

我写了这么多答案,因为我个人在我的迷你项目和项目中的不同地方使用了所有这些。根据问题,有些可能无关紧要,但在其他地方会很有用。

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 文档中的另一种解决方法:

# 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)

- Himanshu

于 2020-12-10T12:04:37.230 回答
0

List is a list of elements in it, hence if you do len(ls), it gives you number of elements in the list. range builtin function will iterate over the range, hence following for loop should work 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
于 2020-04-15T07:19:00.363 回答