1. 程式人生 > >python range和xrange的區別

python range和xrange的區別

如果需要迭代一個數字序列的話,可以使用range()函式,range()函式可以生成等差級數。

如例:
for i in range(5)
print(i)
這段程式碼將輸出0, 1, 2, 3, 4五個數字
range(10)會產生10個值, 也可以讓range()從另外一個數字開始,或者定義一個不同的增量,甚至是負數增量
range(5, 10)從5到9的五個數字range(0, 10, 3) 增量為三, 包括0,3,6,9四個數字range(-10, -100, -30) 增量為-30, 包括-10, -40, -70可以一起使用range()和len()來迭代一個索引序列例如:
a = [‘Nina’, ‘Jim’, ‘Rainman’, ‘Hello’]
for i in range(len(a)):
print(i, a[i])
其實,Python的range的原理是通過生成一個數組,而下面這種寫法:
for i in range(10):
print i
實際上,range()函式先生成了一個數組,完事將陣列結果返給in,也就是說本質上這是一個迭代。
python的xrange和range相比,不同點就在於xrange生成的不是一個數組,而是一個生成器。

print range(1, 10, 2)

print list(xrange(1, 10, 2))
以上兩條語句的結束時一樣的!