我想知道嵌套循环是如何迭代的。例如:
n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
def flatten(lists):
results = []
for lst in lists: #for loop that loops through the indeces of list (the subsists)
for numbers in lst: #for loop that loops through the indices of sub-lists (the numbers)
results.append(numbers)
return results
每次第二次(嵌套)for循环迭代每个索引时,第一个for循环是否会迭代? (因此要迭代子列表中的每个数字,第一个for循环迭代索引0和索引1 - 两个子列表 - 然后第二个嵌套循环进入并迭代其中一个indeces(取决于当前迭代) ,然后这个过程重复......
OR
第一个for循环是否会遍历每个子列表,然后第二个循环进入并迭代,直到子列表中的每个索引都被迭代?
换句话说:
版本1:
第2版:
当迭代子列表中的数字时,他们是否获得自己的索引(子列表0的0,1,2等等,子列表1的索引0,1,2等) )因为它们的索引计数在两个子列表之间是连续的吗?
答案 0 :(得分:-1)
很容易自己检查:
n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
def flatten(lists):
results = []
for i,lst in enumerate(lists): #for loop that loops through the indeces of list (the subsists)
print("i=",i)
for j,numbers in enumerate(lst): #for loop that loops through the indices of sub-lists (the numbers)
print("j=",j)
results.append(numbers)
return results
给出了:
i= 0 #<-- first loop
j= 0 #<-- second loop
j= 1 #<-- second loop
j= 2 #<-- second loop
i= 1 #<-- first loop
j= 0 #<-- second loop
j= 1 #<-- second loop
j= 2 #<-- second loop
j= 3 #<-- second loop
j= 4 #<-- second loop
j= 5 #<-- second loop