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()方法在这里创建一个序列 –

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程