Python 里面 range 和 xrange 的区别
- xrange 和 range 的参数和用法是相同的。只是 xrange()返回的不再是一个 数列,而是一个 xrange 对象。这个对象可以按需生成参数指定范围内的数字 (即元素)。
由于 xrange 对象是按需生成单个的元素,而不像 range 那样, 首先创建整个 list。所以,在相同的范围内,xrange 占用的内存空间将更小, xrange 也会更快。实际上,xrange 由于是在循环内被调用时才会生成元素, 因此无论循环多少次, 只有当前一个元素占用了内存空间,且每次循环占用的 都是相同的单个元素空间。
我们可以粗略的认为,相同 n 个元素的话,range 占用的空间是 xrange 的 n 倍。因此,在循环很大情况下,xrange 的高效率和 快速将表现的很明显 注意:Python3 中已经没有 xrange 了。