小编Wei*_*gTu的帖子

为什么max比sort更慢?

我发现它maxsortPython 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 sorting max python-internals

91
推荐指数
3
解决办法
9517
查看次数

类中生成器的变量范围

我想我知道变量和生成器在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)时,它说:

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
Run Code Online (Sandbox Code Playgroud)

在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)

python variables generator

11
推荐指数
2
解决办法
609
查看次数

标签 统计

python ×2

generator ×1

max ×1

python-internals ×1

sorting ×1

variables ×1