如何在每次迭代中开始第二个循环时加1?

2024-09-26 22:54:56 发布

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

我有两个for循环,比如

jj = 0

for ii in range(filename_list.__len__()):
    jj += 1
    for jj in range(filename_list.__len__()):
        if ii != jj:
            print(str(ii) + " " + str(jj) + "\n")

    print("=" * 5)

每次iifor循环完全执行时,我都希望下一个jjfor循环从它之前的索引+1开始执行。你知道吗

当前,输出如下

0 1
0 2
=====
1 0
1 2
=====
2 0
2 1
=====

但看起来应该更像

0 1
0 2
=====
1 2

因此,对于iifor循环的每次迭代,jj循环应该少一次迭代。你知道吗


Tags: inforlenifrangefilenamelistii
3条回答

可以在第二个范围中插入起点,如下所示:

jj = 0
n=3

for ii in range(n):
    jj += 1
    for jj in range(ii,n):
        if ii != jj:
            print(str(ii) + " " + str(jj) + "\n")

    print("=" * 5)

我把filename_list.__len__()改成n

你可以看到我在第二个范围内加上,这意味着从第二个范围开始jj,而不是从零开始

您还在内部循环的迭代中更改jj。试试这个:

jj = 0

for ii in range(filename_list.__len__()):
    for jj in range(ii+1, filename_list.__len__()):
        print(str(ii) + " " + str(jj) + "\n")

    print("=" * 5)

内部for循环可以从ii开始,因为在内部for的每个循环之后,ii将以1递增:

for ii in range(filename_list.__len__()):
    for jj in range(ii, filename_list.__len__()):
        if ii != jj:
            print(str(ii) + " " + str(jj) + "\n")

    print("=" * 5)

输出:

0 1

0 2

=====
1 2

相关问题 更多 >

    热门问题