2017-03-01 9 views
0

私はグリッドを作成するプログラムを作成していましたが、プログラムはは入力時に割り当てた行列配列によってその位置を決定します。Python forループで値を代入する行列

コード:

def onbekende_naam(hoogtes): 
    print(hoogtes) 
    i = 0 
    j = 0 
    pos1 = set() 

    for hoogtes_subs in hoogtes: 
     j = 0 
     for hoogtes in hoogtes: 
      print("i = " + str(i)) 
      print("j = " + str(j)) 
      pos1.add((i, j)) 
      print pos1 
      j += 1 
     i += 1 
     #pos1.add((i, j)) 

    return pos1 

#verwerking 
print (onbekende_naam(hoogtes)) 

入力:

4 4 
1 2 3 4 
5 6 7 8 
9 1 2 3 
4 5 6 7 
12 1 

出力:あなたはそれが私の値が2

よりも大きいとき、Jをインクリメント停止し

[['1', '2', '3', '4'], ['5', '6', '7', '8'], ['9', '1', '2', '3'], ['4', '5', '6', '7']] 
i = 0 
j = 0 
set([(0, 0)]) 
i = 0 
j = 1 
set([(0, 1), (0, 0)]) 
i = 0 
j = 2 
set([(0, 1), (0, 0), (0, 2)]) 
i = 0 
j = 3 
set([(0, 1), (0, 3), (0, 0), (0, 2)]) 
i = 1 
j = 0 
set([(0, 1), (0, 3), (0, 0), (0, 2), (1, 0)]) 
i = 1 
j = 1 
set([(0, 1), (0, 0), (0, 2), (1, 0), (0, 3), (1, 1)]) 
i = 1 
j = 2 
set([(0, 1), (1, 2), (0, 0), (0, 2), (1, 0), (0, 3), (1, 1)]) 
i = 1 
j = 3 
set([(0, 1), (1, 2), (0, 0), (0, 2), (1, 3), (1, 0), (0, 3), (1, 1)]) 
i = 2 
j = 0 
set([(0, 1), (1, 2), (0, 0), (0, 2), (2, 0), (1, 3), (1, 0), (0, 3), (1, 1)]) 
i = 3 
j = 0 
set([(0, 1), (1, 2), (0, 0), (3, 0), (0, 2), (2, 0), (1, 3), (1, 0), (0, 3), (1, 1)]) 
set([(0, 1), (1, 2), (0, 0), (3, 0), (0, 2), (2, 0), (1, 3), (1, 0), (0, 3), (1, 1)]) 

を見ることができるように

私はかなり新しいですこれで助けてくれてありがとう

+0

あなたの質問に_as書式のテキスト_を含め、それが[mcve]であることを確認してください。 – ForceBru

+0

Ha、kan je je code normaal copy pasten? – rmeertens

答えて

0

2番目のforループで同じ名前を使用しているようです。これを変更してみることができますか?

def onbekende_naam(hoogtes): 
    print(hoogtes) 
    i = 0 
    j = 0 
    pos1 = set() 

    for hoogtes_subs in hoogtes: 
     j = 0 
     for another_name_hoogtes in hoogtes: 
      print("i = " + str(i)) 
      print("j = " + str(j)) 
      pos1.add((i, j)) 
      print pos1 
      j += 1 
     i += 1 
     #pos1.add((i, j)) 

    return pos1 

#verwerking 
print (onbekende_naam(hoogtes)) 

はまた:

TypeError: 'int' object is not iterable

なぜあなたはこのエラーを取得していない:私はあなたの元のコードを実行すると、私は次のエラーを取得しますか?

+0

私の編集を見てください。あなたは配列内の値を使用していません。とにかく、将来重複する変数名を使用しないでください;) – rmeertens

+0

ありがとうございました。 私は以前このエラーがあり、修正しました。 しかし今回は、今回は全然気にならなかった。 (私の最初のコメントでは私の混乱がどこから来ていたのオリジナルではなく、あなたのコードを見ていた) – learningjoe

+0

素晴らしい。あなたのプロジェクトに幸運。 – rmeertens

関連する問題