将嵌套函数导入timei

2024-09-09 04:03:07 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的设置参数有什么问题?在

import timeit
import random
from copy import copy

def shortBubbleSort(aList):
    n = len(aList) - 1
    iterating = True
    while n > 0 and iterating:
        iterating = False
        for i in range(n):
            if aList[i+1] < aList[i]:
                iterating = True
                aList[i], aList[i+1] = aList[i+1], aList[i]
        n -= 1
    return aList


L = []
for i in range(1,500):
    L.append(random.randrange(0,1000000))

x = timeit.repeat("bubbleSort(copy(L))", setup="from __main__ import bubbleSort,copy,L",repeat = 100,number = 100)
y = (sum(x)/len(x))*100
print(str(y))

我也尝试了以下方法:

  • setup="from __main__ import bubbleSort,from copy import copy"
  • setup="from __main__ import bubbleSort,copy"
  • setup="from __main__ import bubbleSort"

回溯如下:

^{pr2}$

Tags: infromimporttrueforlenmainsetup
2条回答

错了。您的函数名为shortBubbleSort,而不是bubbleSort。这是有效的:

x = timeit.repeat("shortBubbleSort(copy(L))", setup="from __main__ import shortBubbleSort,copy,L",repeat = 100,number = 100)

可能是打字错误。实际的函数名是shortBubbleSort,您正在导入bubbleSort

在我的机器上,结果是

192.437240362

相关问题 更多 >