我想知道为什么try-except比下面的程序中的if慢.
def tryway():
try:
while True:
alist.pop()
except IndexError:
pass
def ifway():
while True:
if alist == []:
break
else:
alist.pop()
if __name__=='__main__':
from timeit import Timer
alist = range(1000)
print "Testing Try"
tr = Timer("tryway()","from __main__ import tryway")
print tr.timeit()
print "Testing If"
ir = Timer("ifway()","from __main__ import ifway")
print ir.timeit()
Run Code Online (Sandbox Code Playgroud)
我得到的结果很有趣.
Testing Try
2.91111302376
Testing If
0.30621099472
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么尝试这么慢?
我想知道如何创建宽容字典(如果引发KeyError则返回默认值).
在下面的代码示例中,我将得到一个KeyError; 例如
a = {'one':1,'two':2}
print a['three']
Run Code Online (Sandbox Code Playgroud)
为了不得到一个我将1.必须捕获异常或使用获取.
我不想用我的字典那样做...
我现在正在写一些事件代码(使用gevent在python中),我使用nginx作为Web服务器,我觉得两者都很棒.有人告诉我,事件有一个权衡,但无法看到它.有人可以解释一下吗?
詹姆士
我现在主要用python编写,但是我正在寻找一种更友好的语言(不是JAVA,C#,C或C++).
Python的线程在IO绑定时是很好的,但是当我在做CPU密集型操作时它会变短.
有任何想法吗?
谢谢,詹姆斯
python ×4
asynchronous ×1
concurrency ×1
defaultdict ×1
dictionary ×1
gevent ×1
libevent ×1
performance ×1