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
列挙使用せずにこれを行うためのニシキヘビ方法はありますか()?
編集:
ご迷惑をかけて申し訳ありません。最初の例で
、私はインデックスとして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:上記のすべてのコードサンプルは、擬似コードです。私はまだ心の中で少し曖昧なことを表現しようとしています。
for i in range(0,n):
for j in range (i+1,n):
# do stuff
あなたの2つのループは同じことをしません。一つを選ぶ! – katrielalex
@katrielalex - 明示的ではありませんが、概念的には、同じシーケンス上でネストされたループを表すことができます。内部ループは、外側ループの現在の要素の直後から開始します。 –
2番目の例では、開始時に内部ループを開始し、要素 'a'をスキップします。 – hochl