这两个基本上都是在循环的时候用。
- for i in range ( 0 , 100 ):
- print i
for i in range
(0, 100):
print i
- for i in xrange( 0 , 100 ):
- print i
for i in xrange(0, 100):
print i
这两个输出的结果都是 一样的,实际上有很多不同,range 会直接生成一个list对象:
- >>> a = range ( 0 , 10 )
- >>> type(a)
- <type 'list' >
- >>> a
- [0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
- >>> a[0 ]
- 0
>>> a = range
(0, 10)
>>> type(a)
<type 'list'>
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[0]
0
而xrange则不会直接生成一个 list,而是每次调用返回其中的一个值:
- >>> a = xrange( 0 , 10 )
- >>> type(a)
- <type 'xrange' >
- >>> a
- xrange(10 )
- >>> a[0 ]
- 0
>>> a = xrange(0, 10)
>>> type(a)
<type 'xrange'>
>>> a
xrange(10)
>>> a[0]
0
所以xrange做循环 的性能比range 好,尤其是返回很大的时候!
尽量用xrange吧,除非你是要返回一个列表。
range(5)
[0,1,2,3,4]
要求是range(****)
在range里 输入东西。使她出来的是[4,3,2,1,0]
有没有可能?
[0,1,2,3,4]
要求是range(****)
在range里 输入东西。使她出来的是[4,3,2,1,0]
有没有可能?
最佳答案
这个问题简单
>>> range(4,-1,-1)
[4, 3, 2, 1, 0]
>>> range(5,-1,-1)
[5,4, 3, 2, 1, 0]
>>> range(4,-1,-1)
[4, 3, 2, 1, 0]
>>> range(5,-1,-1)
[5,4, 3, 2, 1, 0]
>>> range(1,10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,10,2)
[1, 3, 5, 7, 9]
>>> range(10,1,-1)
[10, 9, 8, 7, 6, 5, 4, 3, 2]
>>> range(1,10,-1)
[]
>>> range(10,1,-3)
[10, 7, 4]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,10,2)
[1, 3, 5, 7, 9]
>>> range(10,1,-1)
[10, 9, 8, 7, 6, 5, 4, 3, 2]
>>> range(1,10,-1)
[]
>>> range(10,1,-3)
[10, 7, 4]