Python for loop start counter initialization

后端 未结 4 1596
后悔当初
后悔当初 2021-01-06 02:08
for iteration in range(len(list) - 1):
  index = iteration +1 #This is the line which has no effect on the inner loop
  for index in range(len(list)):
    if list[it         


        
相关标签:
4条回答
  • 2021-01-06 02:48

    You really should be using enumerate for stuff like this, as you can loop through the index and the value at the same time (which will save you the hassle of using two for-loops).

    for i, j in enumerate(list):
        print i, j
    

    Your inner loop is overriding the variable index that you defined in the first loop.

    0 讨论(0)
  • 2021-01-06 02:57

    Try this instead:

    for index in range(iteration + 1, len(l)):  # don't use "list" as a name
    

    index is being reassigned anyway within the for-loop so index = iteration + 1 is not having any effect.

    0 讨论(0)
  • 2021-01-06 03:03

    The for index in range(len(list)) loop executes the loop body with index first set to 0, then 1, then 2, etc. up to len(list) - 1. The previous value of index is ignored and overwritten. If you want index to start at iteration + 1, use the 2-argument form of range:

    for index in range(iteration + 1, len(list)):
    
    0 讨论(0)
  • 2021-01-06 03:04
    for index in range(iteration + 1, len(list))
    
    0 讨论(0)
提交回复
热议问题