range([start, ] end [, step])函數(shù)有三個參數(shù),start, end ,step,分別代表起始,結(jié)束以及步長,其中,start,step,可以省略,默認值分別為0,1。該函數(shù)會返回一個序列。如下所示:
>>> range(1,5,2)
[1, 3]
>>> range(5,2)
[]
>>> range(2,5)
[2, 3, 4]
>>>
可以看出,省略參數(shù)時,只能從后向前省略
xrange([start,] end [, step] )函數(shù)也有三個參數(shù),用法與range()相同,只不過前者返回的是一個生成器,而非序列。
>>> xrange(1,5,2)
xrange(1, 5, 2)
>>> xrange(5,2)
xrange(5, 5)
>>> xrange(2,5)
xrange(2, 5)
>>>
可以看出,返回的不是序列,另外,該函數(shù)會檢查起始邊界,自動糾正。
兩者的用法:
因為兩個函數(shù)返回值不同,所以,如果我們需要生成的范圍很大的話,range()函數(shù)會立即開辟全部空間,生成序列;xrange()會生成一個生成器,需要的時候一個一個取
所以,我們盡量使用xrange(),其性能較好。