Python中的for循环中如何修改步长?

在Python的for循环的计数循环中,默认的步长为1,即每次循环变量增量为1;那该如何修改步长呢?

喜欢这个问题 | 分享 | 新建回答

回答

jerkzhang

Feb 27, 2019
1 赞

在python的for循环中,range或xrange函数的第三个参数就是控制步长的;若不进行设置,则默认的步长为1。举例说明:

>>> range( 10 )
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range( 2, 10 )
[2, 3, 4, 5, 6, 7, 8, 9]
>>> range( 2, 10, 3 )   # 第三个参数3代表的就是步长
[2, 5, 8]

上述range函数的第三个参数3就是用来设置步长的,range(2, 10, 3)代表的就是从2开始到10结束(不包括整数10),每次增量为3来获取列表,于是得到列表[2, 5, 8]。如果用之于for循环,就如下所示:

>>> for i in range( 2, 10, 3 ):
...     print i
... 
2
5
8

在python2中,因为xrange比range更加高效,在for循环中,使用xrange可以完全替代range,等同作用且效率更高,所以请习惯性地使用xrange吧;示例代码如下:

>>> for i in xrange( 2, 10, 3 ):
...     print i
... 
2
5
8



为了进一步理解for循环中设置步长,再举个例子,如下所示:

>>> for i in xrange( 10, 2, -2 ):
...     print i
... 
10
8
6
4

看见了吧,步长也可以是负数,  —_—
也就是每次加上-2,直到循环变量到达临界点整数2为止(不包括整数2)