我想每个人都知道:



好的,这是真的:

oldlist = [str(i) for i in range(500)]
oldlist1 = [i for i in range(500)]

%%timeit
newlist = []
for word in oldlist:
    newlist.append(word.upper())

10000次循环,最佳3:每个循环178 µs
%%timeit
def func():
    newlist = []
    for word in oldlist:
        newlist.append(word.upper())
    return newlist
newlist = func()

10000个循环,最好为3:每个循环93.2 µs

不幸的是,看起来这不是全局规则,而是特殊情况:
%%timeit
newlist = []
for nr in oldlist1:
    newlist.append(nr * nr)

10000次循环,最好为3次:每个循环60.3 µs
%%timeit
def func():
    newlist = []
    for nr in oldlist1:
        newlist.append(nr * nr)
    return newlist
newlist = func()

10000次循环,最好为3次:每个循环60.5 µs

如何解释这些测试?

最佳答案

在最后一个示例中,您首先定义了一个额外的功能。如果您在找到功能后启动计时器,它应该会更快。

关于python - Python中全局和局部变量的速度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20075044/

10-13 08:11