Python教程-range() Vs. Xrange() Python
在本文中,我们将讨论Python中的range()和xrange()函数,它们如何在Python中使用,以及它们各自的主要特点。
Python中提供的函数可以在程序的多个部分中使用,因为它们可以减少代码的大小并提高代码的可读性。
首先,让我们来看看什么是range函数,并通过一些涉及其使用的程序来了解它。
接下来,我们将了解什么是xrange函数,并通过一些程序来了解它。
最后,我们将查看它们各自的特点。
range()函数
在以下示例中,我们将打印从0到6的前7个数字。我们在range函数中指定了相应的值,并在end参数中提供了一个空格,以便它打印带有空格的值。
以下程序演示了相同的功能:
示例 -
for i in range(7):
print(i, end=" ")
输出:
在第二个示例中,我们将再次执行相同的操作,即打印从0到6的前7个数字。我们在range函数中指定了相应的值,并在end参数中提供了一个空格,以便它打印带有空格的值。
之后,我们还将检查它返回的类型。
以下程序演示了相同的功能:
示例 - 2
for i in range(7):
print(i,end=" ")
print(type(range(7)))
输出:
在下一个示例中,我们定义了一个包含10个元素的列表。我们在range函数中指定了值,该值为列表'a'的长度,并在end参数中提供了一个空格,以便它打印带有空格的值。
以下程序演示了相同的功能:
示例 - 3
a=[1,2,3,4,5,6,7,8,9,10]
for i in range(len(a)):
print(a[i],end=" ")
输出:
在下一个示例中,我们将以逆序打印0到10范围内的值。我们在range函数中指定了值,格式为start、stop和end。让我们分别看看它们的含义:
- start: 我们希望从哪个值开始显示元素。
- stop: 我们希望在哪个值停止显示元素。
- step: 步骤值指示我们期望在结果中看到的序列类型。默认情况下,步骤的值为0。
以下程序演示了相同的功能:
示例 - 4
for i in range(10,-1,-1):
print(i)
输出:
在下一个示例中,我们将打印从21到31范围内的值,但这次使用Python的reversed方法。我们在range函数中指定了值,并在end参数中提供了一个空格,以便它打印带有空格的值。
以下程序演示了相同的功能:
示例 - 4
for i in reversed(range(21,31)):
print(i,end=" ")
输出:
xrange()函数
xrange()函数具有相同的目的,并返回一个生成器对象,但是在Python 3之前的版本中使用它。
xrange的语法与range()相同,这意味着在xrange中,我们也必须指定start、stop和step。
如果您使用Python 3并执行一个使用xrange的程序,它将生成一个错误,因为从此版本开始使用range()。
让我们看看在Python中运行以下程序时会发生什么:
示例 -
for i in range(1,10,2):
print(i)
for j in xrange(10,20,2):
print(j)
输出:
Range()和Xrange()的比较
以下是基于内存消耗、返回类型、速度和操作的比较:
参数 | range() | xrange() |
---|---|---|
1. 内存消耗 | 由于range()返回一个元素列表,因此占用更多内存。 | 与range()相比,它占用更少的内存。 |
2. 返回类型 | 它返回一个整数列表。 | 它返回一个生成器对象。 |
3. 速度 | 执行速度较慢。 | 执行速度较快。 |
4. 操作 | 由于它返回一个列表,可以执行各种算术操作。 | 这样的操作无法在xrange()上执行。 |