更快的方法是:从列表中多次读取相同的值或将其保存到新变量中?
我的代码如下所示:

if list[0] > foo:
    return list[0], list[0] + bar


我应该定义l0 = list[0]以避免三遍阅读列表吗?还是由于l0变量的内存分配和垃圾回收而导致效率低下?

最佳答案

我同意这些意见,这种微优化不太值得付出努力。无论如何,使用python的timeit https://docs.python.org/3.6/library/timeit.html来检查类似的事情很容易

from timeit import timeit

def a():
    if my_list[0] == 0:
        return my_list[0], my_list[0] + 42
    return 'bar'

def b():
    my_list_0 = my_list[0]
    if my_list_0 == 0:
        return my_list_0, my_list_0 + 42
    return 'bar'

timeit(a)
>>> 0.01871770019934047

timeit(b)
>>> 0.01709997310099425

关于python - Python:从列表中多次读取还是定义一个变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49447182/

10-16 21:08