python中下面的等价物是什么?如何在Python中执行C++风格(索引)嵌套循环?
for (i=0; i<n; i++)
for (j=i+1; j<n; j++)
//do stuff with A[i], A[j]
或者在某种意义上,以下。它也应该在循环的每一轮完成时从A中删除元素。
for a in A:
for a' in A/{a}: #i.e. rest of the elements of A
#do something with a,a'
#remove a from A
有没有使用枚举()这样做的pythonic方法?
编辑:
对不起,这个不好的描述。
在第一个例子中,我的意思是只使用i & j作为索引。他们的价值观并不重要。它只是一个粗略的C++相当于后者。
外循环执行n次。对于外部循环的每次迭代,内部循环执行(n-1),(n-2)... 0次。
也许这可能帮助(伪):
function next_iteration(list):
head = first element
tail = remaining elements #list
each element in tail interacts with head one by one
next_iteration(tail)
PS:以上所有的代码示例pseudocodes。我想表达的东西在我的脑海中仍然有点模糊。
你的两个循环不会做同样的事情。选一个! – katrielalex 2012-03-20 13:31:13
@katrielalex - 不明确,但概念上它们都可以代表相同序列上的嵌套循环,其中内部循环在外部循环中的当前元素之后立即开始。 – 2012-03-20 13:41:20
第二个例子在开始时开始内循环,只跳过元素“a”。 – hochl 2012-03-20 13:46:44