我发现它max比sortPython 2和3中的函数慢.
Python 2
$ python -m timeit -s 'import random;a=range(10000);random.shuffle(a)' 'a.sort();a[-1]'
1000 loops, best of 3: 239 usec per loop
$ python -m timeit -s 'import random;a=range(10000);random.shuffle(a)' 'max(a)'
1000 loops, best of 3: 342 usec per loop
Run Code Online (Sandbox Code Playgroud)
Python 3
$ python3 -m timeit -s 'import random;a=list(range(10000));random.shuffle(a)' 'a.sort();a[-1]'
1000 loops, best of 3: 252 usec per loop
$ python3 -m timeit -s 'import random;a=list(range(10000));random.shuffle(a)' 'max(a)'
1000 loops, best of 3: 371 usec per loop
Run Code Online (Sandbox Code Playgroud)
为什么是 …
我想我知道变量和生成器在Python中是如何工作的.
但是,以下代码让我感到困惑.
from __future__ import print_function
class A(object):
x = 4
gen = (x for _ in range(3))
a = A()
print(list(a.gen))
Run Code Online (Sandbox Code Playgroud)
运行代码(Python 2)时,它说:
Run Code Online (Sandbox Code Playgroud)Traceback (most recent call last): File "Untitled 8.py", line 10, in <module> print(list(a.gen)) File "Untitled 8.py", line 6, in <genexpr> gen = (x for _ in range(3)) NameError: global name 'x' is not defined
在Python 3中,它说,NameError: name 'x' is not defined
但是,当我运行时:
from __future__ import print_function
class A(object):
x = 4
lst = [x for …Run Code Online (Sandbox Code Playgroud)