0

grid1とgrid2を配列に変換し、テーブルを反復処理する次の関数を使用して、grid1とgrid2の値が一致したときに対応する値をテーブルから返す必要があります。しかし、どういうわけか、最終出力には正しくない4つの整数値しか含まれていません。ここで何が間違っている可能性があるかについての提案はありますか?

def grid(grid1,grid2):
    table = {(10,1):61,(10,2):75,(10,3):83,(10,4):87,
             (11,1):54,(11,2):70,(11,3):80,(11,4):85,
             (12,1):61,(12,2):75,(12,3):83,(12,4):87,
             (13,1):77,(13,2):85,(13,3):90,(13,4):92,}
    grid3 = np.zeros(grid1.shape, dtype = np.int)

    for k,v in table.iteritems():
        grid3[[grid1 == k[0]] and [grid2 == k[1]]] = v

    return grid3
4

1 に答える 1

0

変数「k」と「v」への割り当てが「deepcopy」を使用して行われていないことが原因だと思います。これは、代入が変数の値ではなく、変数に対してのみ行われることを意味します。たとえば、後続の反復で「k」の値が変更されると、以前のすべての「gridx」割り当てが「k」の新しい/現在のステータスを反映するようになりました。

于 2013-04-23T17:43:06.953 に答える