簡體   English   中英

Timeit模塊-將參數傳遞給python timeit模塊

[英]Timeit module -passing arguments to python timeit module

從python timeit模塊中,我想檢查打印以下內容需要多少時間,如何做,

import timeit
x = [x for x in range(10000)]
timeit.timeit("print x[9999]")
d=[{i:i} for i in x]
timeit.timeit("print d[9999]")

NameError: global name 'x' is not defined
NameError: global name 'd' is not defined

根據文檔

要使timeit模塊可以訪問您定義的功能,可以傳遞一個包含導入語句的設置參數

在您的情況下,例如:

timeit.timeit('print d[9999]', 
              setup='from __main__ import d')

以下是如何執行此操作的示例:

import timeit

x = [x for x in range(10000)]
d = [{i: i} for i in x]

for i in [x, d]:
    t = timeit.timeit(stmt="print(i[9999])", number=100, globals=globals())
    print(f"took: {t:.4f}")

輸出:

took: 0.0776
took: 0.0788

請注意,我添加了number = 100,因此它每次運行100次。 默認情況下為1,000,000次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM