Python中xrange 和 range的區別

2021-09-26 15:05:04 字數 860 閱讀 7705

xrange 和 range的區別

a)xrange 生成的是乙個生成器,range生成的是乙個list物件

b)要生成很大的數字序列的時候,使用xrange會比使用range效能更優

range([start], [end], [long])

描述:根據range裡的引數生成指定範圍指定步長的乙個序列

引數:[start]——指定範圍的左邊界,可取到

[end]——指定範圍的右邊界,不可取到

[long]——步長,若無步長,預設為1

返回值:

列表例項:

>>>range(0, 6, 2)

[0,2,4]

>>>range(5)

[0, 1, 2, 3, 4]12

345xrange()

描述:用法與range完全相同,生成的不是陣列,而是乙個生成器

例項:>>>xrange(0, 6, 2)

xrange(0, 6, 2)

>>>xrange(5)

xrange(5)12

345區別:

1、要生成很大的數字序列的時候,用xrange會比range效能優很多,不需要一上來就占用一塊很大的記憶體空間;

2、range會直接生成乙個list物件;xrange則不會直接生成乙個list,而是每次呼叫返回其中的乙個值

range()的風險

在python2中,range產生的是乙個列表,如果range產生的列表需要乙個很大的空間,系統會直接出現異常memoryerror;若未丟擲異常,如此時range一直未被使用,就會一直占用系統記憶體,導致記憶體浪費。

在python3中,range不會立馬占用記憶體空間,而是什麼時候使用,什麼時候才會生成列表。

python中range 和 xrange的區別

range 函式說明 range start,stop step 根據start與stop指定的範圍以及step設定的步長,生成乙個序列。range示例 range 5 0,1,2,3,4 range 1,5 1,2,3,4 range 0,6,2 0,2,4 xrange 函式說明 用法與rang...

python中xrange和range的異同

range 函式說明 range start,stop step 根據start與stop指定的範圍以及step設定的步長,生成乙個序列。range示例 1.range 5 2.0,1,2,3,4 3.range 1,5 4.1,2,3,4 5.range 0,6,2 6.0,2,4 xrange ...

python中xrange和range的異同

range 函式說明 range start,stop step 根據start與stop指定的範圍以及step設定的步長,生成乙個序列。range示例 range 5 0,1,2,3,4 range 1 5 1,2,3,4 range 0 6,2 0,2,4 xrange 函式說明 用法與rang...