用于增量内循环的python
如何从内部循环增加外部迭代器?
更准确地说:
for i in range(0,6):
print i
for j in range(0,5):
i = i+2
我正进入(状态
0
1
2
3
4
5
, 但是我想要 0,2,4
上面是我想要实现的简化想法。
这是我的Java代码:
str1="ababa"
str2="aba"
for(int i =0; i < str1.length; i++)
for(int j =0; j < str2.length; j++)
if str1[i+j]!=str[j]
break;
if( j ==str2.length -1)
i=i+str2.length;
-
似乎您想使用范围功能的step参数。从文档:
range(start,stop
[,step])这是创建包含算术级数的列表的通用功能。它最常用于for循环中。参数必须是纯整数。如果省略了step参数,则默认值为1。如果省略了start参数,则默认值为0。完整格式返回纯整数列表[start,start
+ step,start + 2 * step,…] 。如果step为正,则最后一个元素是最大的start + i * step小于stop;如果step为负,则最后一个元素为start + i * step大于stop的最小值。step不能为零(否则引发ValueError)。例:>>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(1, 11) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> range(0, 30, 5) [0, 5, 10, 15, 20, 25] >>> range(0, 10, 3) [0, 3, 6, 9] >>> range(0, -10, -1) [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] >>> range(0) [] >>> range(1, 0) []
如果要获得[0,2,4],则可以使用:
range(0,6,2)
或者在您的情况下是var:
idx = None for i in range(len(str1)): if idx and i < idx: continue for j in range(len(str2)): if str1[i+j] != str2[j]: break else: idx = i+j