range(start, end, step),返回一个list对象,起始值为start,终止值为end,但不含终止值,步长为step。只能创建int型list。
arange(start, end, step),与range()类似,但是返回一个array对象。需要引入import numpy as np,并且arange可以使用float型数据。
两者都可用于迭代。range仅可用于迭代,而np.arange作用远不止于此,它是一个序列,可被当做向量使用。
两者都有三个参数,以第一个参数为起点,第三个参数为步长,截止到第二个参数之前的不包括第二个参数的数据序列
>>> import numpy as np
>>> range(1,10,2)
[1, 3, 5, 7, 9]
>>> np.arange(1,10,2)
array([1, 3, 5, 7, 9])
>>> range(1,5,0.5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: range() integer step argument expected, got float.
>>> np.arange(1,5,0.5)
array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
【注意:python3.x中把range()取消了】,同时将xrange重命名为range。
xrange()也是用作循环,只是xrang(0,10)不返回list,返回xrange对象。每次调用返回其中的一个值。
返回很大的数的时候或者频繁的需要break时候,xrange性能更好。arange和xrange没有区别,而且在数值大的时候xrang更优越,以后coding时候尽量用xrange。