如何在Python中实现这两个循环?

mar*_*lon 2 python for-loop

my_list = ['ab', 'abc', 'abcd']

for i=0; i<len(my_list); i++

    for j=i+1; j<len(my_list); j++:

        print(my_list[i], my_list[j])
Run Code Online (Sandbox Code Playgroud)

我需要两个以上的循环(在Java或C ++中)来相互比较元素。如何在Python中类似地执行此操作?我正在尝试这样做,但是没有用:

for index, value in enumerate(my_list, start=0):
   for index2, value2 in enumerate(my_list, start=1):
    print(value, value2)
Run Code Online (Sandbox Code Playgroud)

事实证明结果不一样。

Jmo*_*sky 5

您可以使用枚举对列表进行切片,但这可能会占用大量内存,具体取决于列表的大小。

for index1, value1 in enumerate(my_list):
    for index2, value2 in enumerate(my_list[index1+1:]):
        print(value1, value2)
Run Code Online (Sandbox Code Playgroud)

您还可以执行类似于C代码的相同代码。

for i in range(len(my_list)):
    for j in range(i+1, len(my_list)):
        print(my_list[i], my_list[j])
Run Code Online (Sandbox Code Playgroud)

  • 在第一个解决方案中,由于不使用结果索引,因此可以跳过嵌套的for循环中的“枚举”。 (3认同)