Python中range()和xrange()函数的区别是什么?

Python中range()和xrange()函数的区别是什么?

Python中的range()方法用于返回序列对象,用于Python 3.x中。而xrange()用于Python 2.x中生成数字序列。因此,在Python 3.x中不存在xrange()。

让我们逐一学习range()和xrange()。

Python中的range()方法

range()方法返回一个数字序列,并具有3个参数,即起始位置,结束位置和步长。这是语法-

range(start, stop, step)

在这里,

  • start − 指定开始位置的整数。

  • stop − 指定停止位置的整数。

  • step − 指定增量即跳过的步骤

使用range()创建数字序列

示例

我们将使用range()方法在此创建序列-

#使用range()获取数字序列
#定义起始和结束参数
a = range(2, 8)
for n in a:
   print(n)

输出

2
3
4
5
6
7

使用range()创建数字序列并设置步长

示例

我们将使用range()方法在此创建序列,并设置跳过步骤-

#使用range()获取数字序列
#定义起始、结束和步骤参数
a = range(2, 10, 3)
for n in a:
   print(n)

输出

2
5
8

使用range()创建序列并获取对象大小

示例

使用getsizeof()方法以字节为单位获取给定对象的大小-

import sys
#使用range()获取数字序列
#定义起始和结束参数
a = range(2, 5)
for n in a:
   print(n)

#获取大小
print("大小= ",sys.getsizeof(a))

输出

2
3
4
大小= 48

Python中的xrange()方法

xrange()方法返回生成器对象,并与Python中range()方法类似。

注意 − xrange()仅在Python 2.x中运行。在Python 3.x中将抛出错误。

语法

这是语法-

range(start, stop, step)

在这里,

  • start − 指定开始位置的整数。

  • stop − 指定停止位置的整数。

  • step − 指定增量即跳过的步骤

让我们看一些示例。

注意 − 我们在Python 2.x中运行了以下程序

使用xrange()创建数字序列

示例

我们将使用xrange()方法在此创建序列-

# Python 2.x
# 使用range()方法获取一系列数字
# 指定开始和结束参数
a = range(4, 8)
for n in a:
   print(n)

输出

4
5
6
7

使用xrange()方法创建数字序列并设置步长

示例

我们将使用xrange()方法创建数字序列,并设置步长。 −

# Python 2.x
# 使用xrange()方法获取一系列数字
# 指定开始、结束和步长参数
a = xrange(4, 12, 2)
for n in a:
   print(n)

输出

4
6
8
10

使用xrange()创建序列并获取对象大小

示例

使用getsizeof()方法获取给定对象的大小。

#Python 2.x
import sys

# 使用xrange()方法获取一系列数字
# 指定开始和结束参数
a = xrange(2, 5)
for n in a:
   print(n)

# 获取大小
print("Size = ",sys.getsizeof(a))

输出

2
3
4
('Size = ', 40)

上面的示例显示xrange()仅使用40个字节。在前一节中,我们发现对于相同数量的元素,range()方法使用了48个字节。因此,xrange()方法使用的内存更少。

range()和xrange()的区别

现在,让我们看看它们的区别−

基础 range() xrange()
意义 range()方法返回数字序列,即整数列表。 xrange()方法返回生成器对象。
Python版本 适用于Python 3.x 适用于Python 2.x
内存 使用的内存更多(上面的示例) 使用的内存更少(上面的示例)
操作 它返回数字列表,因此我们可以执行算术操作。 在xrange()方法上不可能进行算术运算符操作。
执行速度 比xrange()慢。 比range()快。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程