2017-01-19 15 views
-3

をデクリメントないループ私のコードは、これは私が取得していますものですネストさはここで適切に

for j in range(5,8): 
     for i in range(6): 
      print("[{}][{}]".format(i,j)) 
      j-=1 

です。右側のjの値は、最初の完全なループの後に5から4に減少するはずです。詳しい説明を見るコード

[0][5] 
    [1][4] 
    [2][3] 
    [3][2] 
    [4][1] 
    [5][0] 

    [0][6] # Here, I want the j value or 6 to decrement to 4 but it's incrementing 
    [1][5] 
    [2][4] 
    [3][3] 
    [4][2] 
    [5][1] 

    [0][7] 
    [1][6] 
    [2][5] 
    [3][4] 
    [4][3] 
    [5][2] 

これは、私は私はあなたが外部ループ・ステートメントに戻ったとき、J範囲ジェネレータから値を受け取ることを推測をハザードう

[0][5] 
    [1][4] 
    [2][3] 
    [3][2] 
    [4][1] 
    [5][0] 

    [0][4] # Here, I want the j value to decrement to 4 
    [1][3] 
    [2][2] 
    [3][1] 
    [4][0] 

    [0][3] 
    [1][2] 
    [2][1] 
    [3][0] 
+0

を何が '範囲のjについて(5、8)'を意味することになっていますか? – mkrieger1

+0

[範囲()と逆の順序でリストを印刷する]の可能な複製()http://stackoverflow.com/questions/7286365/print-a-list-in-reverse-order-with-range – mkrieger1

答えて

0

何をしたいです - 無意味な操作を上書きする必要があります。

そしての値はI(一文字変数名を嫌いするもう一つの理由)は0に戻る - ループによって、再び - 及びJが6にインクリメントされ、結果は明白です。

0

このようにループ変数を変更しないでください。私はすべての新しいループが変数をリセットすると思います。あなたは2つの数字の組み合わせを並べ替えたいと思う。代わりにitertoolsを使用してください。

https://docs.python.org/3/library/itertools.html

1

それはあなたが実際に達成しようとしているが何であるかを知らず、それは答えるのはちょっと難しいです。

しかし、これは動作するはずです:

for i in range(6, 3, -1): 
    for j in range(i): 
     print("[{}][{}]".format(j, i-j-1)) 
    print 
+0

'i 'とJを交換することはできません。それは 'i' then 'j'でなければならない – user7401490

+0

その後、私はあなたのためにリストアップされたコードのiとjを入れ替えます:それらの順序は何の違いもありません。内側のもの)。 – chukrum47

関連する問題