python for increment inner loop

前端 未结 5 1690
轻奢々
轻奢々 2020-12-09 10:07

How to increment the outer iterator from the inner loop?

To be more precise:

  for i in range(0,6):
    print i
    for j in range(0,5):
      i = i         


        
5条回答
  •  庸人自扰
    2020-12-09 10:50

    It seems that you want to use step parameter of range function. From documentation:

    range(start, stop[, step]) This is a versatile function to create lists containing arithmetic progressions. It is most often used in for loops. The arguments must be plain integers. If the step argument is omitted, it defaults to 1. If the start argument is omitted, it defaults to 0. The full form returns a list of plain integers [start, start + step, start + 2 * step, ...]. If step is positive, the last element is the largest start + i * step less than stop; if step is negative, the last element is the smallest start + i * step greater than stop. step must not be zero (or else ValueError is raised). Example:

     >>> 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) []
    

    In your case to get [0,2,4] you can use:

    range(0,6,2)
    

    OR in your case when is a 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
    

提交回复
热议问题