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()快。 |