使用python测试列表中的每个对象与同一列表中的每个其他对象完全一次

时间:2013-05-23 20:25:29

标签: python c loops for-loop foreach

要突出显示我在这里尝试做的是C代码中的等效内容。

for ( int i = 0; i < COUNT; ++i )
{
    for ( int j = i + 1; j < COUNT; ++j )
    {
        foo( i, j );
    }
}

...其中COUNT是列表的大小,'foo'是一个在数组中有两个不同条目的函数。

非常感谢 DB

1 个答案:

答案 0 :(得分:3)

我可能会在你的问题中遗漏一些内容,但我相信这是一个解决方案。

 for i in range(0,COUNT):
    for j in range(i+1,COUNT):
        foo(i,j)

如果你想存储结果,你也可以在列表理解中完成整个过程:

[[foo(i,j) for j in range(i+1,COUNT)] for i in range(0,COUNT)]

可能更加pythonic,肯定更快。