在Python中嵌套

2024-06-26 15:00:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表,我想迭代它,然后在嵌套的for中迭代,从我读到的第一个列表的下一个位置开始,在同一个列表上的第一个列表。你知道吗

在Java这样的语言中:

int[10] array;
for (int i=0; i < array.length(); i++)
    for (int j=i+1; j < array.length(); j ++)
        //do something with the array comparing a[i] and a[j]

我怎么能在Python上这么做呢? 我试试这个:

for a in array:
     del array[0]
     for a2 in array:
         //do something with the array comparing a and a2

但只在第一次迭代中有效。。有什么帮助吗?你知道吗


Tags: andthein语言a2列表forwith
2条回答
for i in range(0,len(array)):
    for j in range(i+1,len(array)):
        #do something with array[i] and array[j]

在Python中,如果在迭代时需要索引,可以使用enumerate

array = [1,2,3,4]

for index1, value1 in enumerate(array):
    for index2, value2 in enumerate(array[index1+1:]):
        print(index1, index2+index1+1, value1, value2)

[index1+1:]对数组进行切片,使其仅包含以下项。然后输出为:

0 1 1 2
0 2 1 3
0 3 1 4
1 2 2 3
1 3 2 4
2 3 3 4

但是有一个内置函数与您的情况非常匹配:^{},它允许您在没有嵌套循环的情况下也可以这样做:

from itertools import combinations

for value1, value2 in combinations(array, 2):
    print(value1, value2)

印刷品:

1 2
1 3
1 4
2 3
2 4
3 4

相关问题 更多 >