如何 运行 嵌套循环 python inside list 使得外循环总是从列表的下一个元素开始等等

How to run a nested loop in python inside list such that the outer loop starts from the next element of the list always and so on

我有一个类似这样的列表:

[[16777230, 0], [16777226, 1], [16777252, 2], [16777246, 0]]

我想为我在 python 中的操作在循环(嵌套循环)内创建一个循环,这样内循环将始终从外循环的下一个元素开始。

例如,外循环将在每次迭代中遍历列表中从索引 0 到 3 的所有元素。但是在外循环的第一次迭代中,内循环将从索引 1 开始,并在索引 3 结束。然后,在外循环的第二次迭代中,内循环应该遍历索引2到索引3。以此类推......外循环的最后一次迭代应该使内循环从索引n遍历到索引n,基本上只最后一个元素,在本例中为索引 3 到索引 3。

问题是我在遍历时正在删除列表的元素。因此,它在使用范围函数遍历时会产生列表索引超出范围等问题。

如何构建这些内循环和外循环?

我试过了,但似乎不起作用:

for sub_list1 in yx:
    index_sl1 = yx.index(sub_list1)
    for sub_list2 in yx[index_sl1+1:]:
        Operations...

不胜感激。谢谢!!

您应该尝试直接使用索引而不是元素进行迭代,从列表中的下一个位置开始会更容易:

your_list = [1,5,2,0,4,2,7]
for index in range(len(your_list)):
    element_outer_loop = your_list[index]
    for index2 in range(index+1, len(your_list)):
        element_inner_loop = your_list[index2]

在您完成的代码中,您会得到错误的结果,因为您的列表多次包含相同的值(例如 2),并且当您调用 index(sub_list1) 时,它将 return 第一个对应的值元素,所以它对前 2 个很好,但对于下一个,它将 return 第一个的位置。

试试这个代码!

外循环的每一次迭代,都需要从1递增到列表范围内迭代内循环。

代码:

arr = [1,5,2,0,4,2,7]
for i in range(0,len(arr)):
    print("Iteration # : ", i+1)
    for j in range(i+1,len(arr)):
        print("Outer loop value : " , arr[i] , " Inner loop value : " , arr[j])

输出:

Iteration # :  1                                                                                                       
Outer loop value :  1  Inner loop value :  5                                                                           
Outer loop value :  1  Inner loop value :  2                                                                           
Outer loop value :  1  Inner loop value :  0                                                                           
Outer loop value :  1  Inner loop value :  4                                                                           
Outer loop value :  1  Inner loop value :  2                                                                           
Outer loop value :  1  Inner loop value :  7                                                                           
Iteration # :  2                                                                                                       
Outer loop value :  5  Inner loop value :  2                                                                           
Outer loop value :  5  Inner loop value :  0                                                                           
Outer loop value :  5  Inner loop value :  4                                                                           
Outer loop value :  5  Inner loop value :  2                                                                           
Outer loop value :  5  Inner loop value :  7                                                                           
Iteration # :  3                                                                                                       
Outer loop value :  2  Inner loop value :  0                                                                           
Outer loop value :  2  Inner loop value :  4                                                                           
Outer loop value :  2  Inner loop value :  2                                                                           
Outer loop value :  2  Inner loop value :  7                                                                           
Iteration # :  4                                                                                                       
Outer loop value :  0  Inner loop value :  4                                                                           
Outer loop value :  0  Inner loop value :  2                                                                           
Outer loop value :  0  Inner loop value :  7                                                                           
Iteration # :  5                                                                                                       
Outer loop value :  4  Inner loop value :  2                                                                           
Outer loop value :  4  Inner loop value :  7                                                                           
Iteration # :  6                                                                                                       
Outer loop value :  2  Inner loop value :  7                                                                           
Iteration # :  7

enumerate() 方法将计数器添加到可迭代对象,returns 它(枚举对象)。

yx = [1,5,2,0,4,2,7]

for index,sub_list1 in enumerate(yx):
    for sub_list2 in yx[index+1:]:
        print(sub_list2)