xrange():像range(),而不是返回一个列表,返回一个对象
根据需要生成范围内的数字。 为了循环,这是略高于range()和更高的内存效率。也就是说它返回一个对象的长度范围,多数是用在循环中,为了提高运行效率,也可以叫做生成器。
语法:
xrange(stop)
xrange(start, stop[, step])
说明:这里面的参数跟range()一样:start起始值(不选默认为0),stop结束值(取结束位置前一位的值),step步进值(可选,默认为1)
实例演示:
>>> l = xrange(9)
>>> l
xrange(9)
说明:这里返回的就是一个xrange object这个看着不清晰,下面通过for循环来具体演示
这里通过一个for循环来具体演示:
只有结束值:
>>> l = xrange(9)
>>> l
xrange(9)
>>> for i in l:
... print i
...
0
1
2
3
4
5
6
7
8
有起始值和结束值:
>>> l = xrange(1,9)
>>> for i in l:
... print i
...
1
2
3
4
5
6
7
8
有起始值,结束值,并且步进值是2(默认是1这样看不出效果):
>>> l = xrange(1,9,2)
>>> for i in l:
... print i
...
1
3
5
7
说明:`xrange()还有很多的方法了,简单说下把
xrange()方法使用:
通过help(xrange)得到xrange定义的方法:
Help on class xrange in module __builtin__:
class xrange(object)
| xrange(stop) -> xrange object
| xrange(start, stop[, step]) -> xrange object
|
| Like range(), but instead of returning a list, returns an object that
| generates the numbers in the range on demand. For looping, this is
| slightly faster than range() and more memory efficient.
|
| Methods defined here:
|
| __getattribute__(...)
| x.__getattribute__('name') <==> x.name #这个先保留,没搞明白
|
| __getitem__(...)
| x.__getitem__(y) <==> x[y] #说明:相当于索引取值,例如:List[0]
|
| __iter__(...)
| x.__iter__() <==> iter(x) #说明:返回一个迭代对象,例如:iter(l),
|
| __len__(...)
| x.__len__() <==> len(x) #说明:计算元素长度,例如:l = [1,2,3],len(l),长度为3
| __reduce__(...) #说明:逐次取值,有点像`for`循环,接受两参数,取一个值就返回一个值
使用方法: reduce(function, sequence[, initial]) -> value
其中function是函数,sequence为序列,可选initial为初始值
实例演示:
>>> l
xrange(1, 9, 2)
>>> reduce(lambda x,y:x+y,l)
16
>>> for i in l: # 这里的for是为了清晰的看出变量l里面生成的值
... print i
...
1
3
5
7
|
| __repr__(...)
| x.__repr__() <==> repr(x) #说明:以规范字符串的形式,返回对象,例如:>>> repr(l)返回'xrange(1, 9, 2)'
|
| __reversed__(...) #说明:返回反向迭代器,例如:reversed(l)返回,跟iter结果一样
| Returns a reverse iterator.
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| __new__ =
| T.__new__(S, ...) -> a new object with type S, a subtype of T
说明:<==>后面的就是它的简化操作,没有就直接使用的例如,里面讲解reduce的用法。像__repr__(...)这种解说不详细的可以通过help()获取到详细的说明