Python中range()和xrange()函数的区别?
Python中的range()方法用于返回一个序列对象。它用于Python 3.x。xrange()用于生成数字序列,用于Python 2.x。因此,Python 3.x中没有xrange()。
让我们首先分别了解range()和xrange()。
Python中的range()方法
range()方法返回一个数字序列,并具有3个参数:start、stop和step。语法如下:
range(start, stop, step)
这里:
start − 指定起始位置的整数。
stop − 指定结束位置的整数。(不包含stop)
step − 指定增量,即跳过的步数。
使用range()创建数字序列
示例
我们将在这里使用range()方法创建一个序列:
# Using the range() to get sequence of numbers # Defines start and stop parameters a = range(2, 8) for n in a: print(n)
输出
2 3 4 5 6 7
使用range()创建数字序列并设置步长
示例
我们将在这里使用range()方法创建一个序列,并将设置跳过步长:
# Using the range() to get sequence of numbers # Defined start, stop and step parameters a = range(2, 10, 3) for n in a: print(n)
输出
2 5 8
使用range()创建序列并获取对象的大小
示例
getsizeof()方法用于获取给定对象以字节为单位的大小:
import sys # Using the range() to get sequence of numbers # Defined start and stop parameters a = range(2, 5) for n in a: print(n) # Get the size print("Size = ",sys.getsizeof(a))
输出
2 3 4 Size = 48
Python中的xrange()方法
xrange()方法返回生成器对象,与Python中的range()方法有点类似。
注意 − xrange() 仅在 Python 2.x 中运行。在 Python 3.x 中会报错。
语法
语法如下:
range(start, stop, step)
这里:
start − 指定起始位置的整数。
stop − 指定结束位置的整数。(不包含stop)
step − 指定增量,即跳过的步数。
让我们看一些例子。
注意 − 我们在 Python 2.x 中运行以下程序。
使用xrange()创建数字序列
示例
我们将在这里使用xrange()方法创建一个序列:
# Python 2.x # Using the range() to get sequence of numbers # Defines start and stop parameters a = range(4, 8) for n in a: print(n)
输出
4 5 6 7
使用xrange()创建数字序列并设置步长
示例
我们将在这里使用xrange()方法创建一个序列,并将设置步长:
# Python 2.x # Using the xrange() to get sequence of numbers # Defined start, stop and step parameters a = xrange(4, 12, 2) for n in a: print(n)
输出
4 6 8 10
使用xrange()创建序列并获取对象的大小
示例
getsizeof()方法用于获取给定对象以字节为单位的大小:
#Python 2.x import sys # Using the xrange() to get sequence of numbers # Defined start and stop parameters a = xrange(2, 5) for n in a: print(n) # Get the size print("Size = ",sys.getsizeof(a))
输出
2 3 4 ('Size = ', 40)
上面显示xrange()仅占用40字节。在上一节中,我们看到对于相同数量的元素,range()方法占用了48字节。因此,xrange()占用更少的内存。
range() vs xrange()
现在,让我们看看区别:
依据 | range() | xrange() |
---|---|---|
含义 | range()方法返回一个数字序列,即整数列表。 | xrange()方法返回一个生成器对象。 |
Python版本 | 在Python 3.x中有效 | 在Python 2.x中有效 |
消耗更多内存(如上所示) | 消耗更少内存(如上所示) | |
操作 | 它返回一个数字列表,因此我们可以执行算术运算。 | 在xrange()方法上无法进行算术运算。 |
执行速度 | 比xrange()慢 | 比range()快 |
广告