用于增量内循环的python

发布于 2021-01-29 17:44:36

如何从内部循环增加外部迭代器?

更准确地说:

  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;
关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    似乎您想使用范围功能的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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看