小编Jam*_*mes的帖子

Python如果vs try-except

我想知道为什么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)

任何人都可以解释为什么尝试这么慢?

python performance

25
推荐指数
1
解决办法
1万
查看次数

宽容的字典

我想知道如何创建宽容字典(如果引发KeyError则返回默认值).

在下面的代码示例中,我将得到一个KeyError; 例如

a = {'one':1,'two':2}
print a['three']
Run Code Online (Sandbox Code Playgroud)

为了不得到一个我将1.必须捕获异常或使用获取.

我不想用我的字典那样做...

python dictionary defaultdict dictionary-missing

9
推荐指数
3
解决办法
677
查看次数

为什么我不应该使用异步(事件)IO

我现在正在写一些事件代码(使用gevent在python中),我使用nginx作为Web服务器,我觉得两者都很棒.有人告诉我,事件有一个权衡,但无法看到它.有人可以解释一下吗?

詹姆士

python asynchronous libevent gevent

9
推荐指数
2
解决办法
1690
查看次数

"Pythonic"多线程(并发)语言

我现在主要用python编写,但是我正在寻找一种更友好的语言(不是JAVA,C#,C或C++).

Python的线程在IO绑定时是很好的,但是当我在做CPU密集型操作时它会变短.

有任何想法吗?

谢谢,詹姆斯

python concurrency multithreading multiprocessing

3
推荐指数
1
解决办法
437
查看次数