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()方法在这里创建一个序列 –
# 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 - 指定停止位置的整数。
-
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()快。 |