2024-04-20 06:49:48 发布
网友
我有点困惑这个。不要担心输出。你知道吗
L = [9, 2, 8, 2, 3, 4, 2] >>>[i for i, x in enumerate(L) if x == min(L)]
在这里,min(L)调用每个迭代吗?还是这样好
min(L)
L = [9, 2, 8, 2, 3, 4, 2] m = min(L) >>>[i for i, x in enumerate(L) if x == m]
希望我的问题清楚。你知道吗
易于检查(IPython控制台):
In [9]: def foo(x): print "Called." return True In [10]: [1 for x in xrange(10) if foo(x)] Called. Called. Called. Called. Called. Called. Called. Called. Called. Called. Out[10]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
至于函数调用的优化,这通常是实时编译器的地盘。因此,在PyPy的情况下,经过一定次数的迭代之后,编译器可能会认为这是一个热点,并可能尝试优化函数的内部结构,但我认为这种优化的功能不足以将复杂性从O(n)降低到O(1)。你知道吗
O(n)
O(1)
易于检查(IPython控制台):
至于函数调用的优化,这通常是实时编译器的地盘。因此,在PyPy的情况下,经过一定次数的迭代之后,编译器可能会认为这是一个热点,并可能尝试优化函数的内部结构,但我认为这种优化的功能不足以将复杂性从
O(n)
降低到O(1)
。你知道吗相关问题 更多 >
编程相关推荐