如何从内环递增外部迭代器?
更准确地说:
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;
在python中,for循环在iterable上迭代,而不是递增一个计数器,因此您有两个选择。使用像Artsiom推荐的跳过标志是一种方法。另一个选择是从您的范围生成一个生成器,并通过使用
next()
丢弃一个元素来手动推进它。但这还不完全,因为
next()
如果到达范围的末尾,可能会抛出一个stopietition,因此必须添加一些逻辑来检测它,如果发生这种情况,则必须从外部循环中断。最后,我可能会使用aw4ully的while循环的解决方案。
使用while循环比使用for循环更好。我直接从java代码中翻译了您的代码。
似乎您要使用范围函数的步长参数。来自文档:
如果要获取[0,2,4],可以使用:
或者在您的情况下,什么时候是var:
相关问题 更多 >
编程相关推荐