gpt4 book ai didi

loops - 如何在 python 中执行 C++ 样式(索引)嵌套循环?

转载 作者:太空狗 更新时间:2023-10-30 02:22:35 26 4
gpt4 key购买 nike

在 python 中,下面的等价物是什么?

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

有没有不使用 enumerate() 的 pythonic 方式来做到这一点?

编辑:

抱歉描述不当。

  1. 在第一个示例中,我的意思是仅将 i 和 j 用作索引。他们的值(value)观并不重要。它只是后者的粗略 c++ 等价物。

  2. 外层循环执行了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:以上代码示例均为伪代码。我试图表达一些在我脑海中仍然有点模糊的东西。

最佳答案

我把你的问题解释为

How can I iterate over all pairs of distinct elements of a container?

回答:

>>> x = {1,2,3}
>>> import itertools
>>> for a, b in itertools.permutations(x, 2):
... print a, b
...
1 2
1 3
2 1
2 3
3 1
3 2

编辑:如果您不想同时使用 (a,b)(b,a),只需使用 itertools.combinations相反。

关于loops - 如何在 python 中执行 C++ 样式(索引)嵌套循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9787741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com