显然xrange更快但我不知道为什么它更快(除了轶事到目前为止没有证据表明它更快)或者除此之外还有什么不同
for i in range(0, 20):
for i in xrange(0, 20):
Run Code Online (Sandbox Code Playgroud) 前几天我做了一些Python基准测试,我发现了一些有趣的东西.下面是两个或多或少相同的循环.循环1大约需要循环2执行的两倍.
循环1:
int i = 0
while i < 100000000:
i += 1
Run Code Online (Sandbox Code Playgroud)
循环2:
for n in range(0,100000000):
pass
Run Code Online (Sandbox Code Playgroud)
为什么第一个循环这么慢?我知道这是一个微不足道的例子,但它引起了我的兴趣.range()函数有什么特别之处,它比以相同方式递增变量更有效吗?
我有一个概念上的问题从C移植到Python:
int p;
for (p = 32; p < 64; p += 2) {
if (some condition)
break;
do some stuff
}
return p;
Run Code Online (Sandbox Code Playgroud)
将循环转换为for p in range(32,64,2)不起作用.这是因为在循环结束后,p等于62而不是64.
我可以while轻松地使用循环:
p = 32
while p < 64:
if (some condition):
break
do some stuff
p += 2
return p
Run Code Online (Sandbox Code Playgroud)
但我正在寻找一种Pythonic方式.