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()快 |
廣告