一个Python3和Python2的range差异
Posted December 20, 2017
Python 3 中执行100000000 in range(100000001)
会比Python 2快的非常多。
如果把量级增高, Py2会出现 MemoryError
, Py3也会以非常快的速度执行。所以猜测Py3没有生成列表.
先看下两个方法的区别.
Python2
Python3
可以看出有部分方法和属性的区别, 很明显Py3增强了 range 函数. 其实需要注意的是__contains__
, 这个函数支持了in
和not in
运算符, 所以完全可以通过,判断100000000
是否大于开始数字和结束数字即可完成in
和not in
运算.
如何用Py2实现Py3的range
注意代码中的__contains__
方法.
整理翻译于StackoverFlow