python3比python2慢(leetcode体验)

在做leetcode时,习惯性地使用python3,因为python2准备停止支持了嘛,python3才是未来。

但是。。。。。。。。。。

被一道题卡超时了,一直困在其中,上网搜python对于该题的题解,

非常神奇的事情发生了。。。。

别人能过的为什么我偏偏不能过,搜了好几个题解在我提交后都超时。。

后来看到一些题解里有xrange这个函数,这时python2才有的,

于是我尝试用python2提交,结果终于过了,泪流满面。。。。

但过了是一回事,为什么python3比python2慢呢?

我进行了大量的搜索,总结为:

Python 内部用到 dict 的地方很多啊,比如说在交互模式下,`a=1`一共会创建并销毁 15 个字典对象。

我这里测试 2.7 和 3.5 dict 的效率差很多啊

具体还是应该看代码吧,比如 Python 3 中大量使用了生成器,`xrange`取消了,

`range`的效果等同于 Python 2 中的`xrange`,

但是 Python 3 的`range`要比 Python 2 的`xrange`慢不少,看这里: 

``` 
$ python3 -m timeit -s"r = range(33550336)" "for i in r: pass" 
10 loops, best of 3: 835 msec per loop 

$ python2 -m timeit -s"r = xrange(33550336)" "for i in r: pass" 
10 loops, best of 3: 464 msec per loop 
``` 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值