0

私はこれらのような変数を取得します:

ocd[2].likelihood.range[1][0]=[-5219, -5191, 11.7];
ocd[2].likelihood.range[1][1]=[-5180, -5057, 56.5];

他のプログラムから。私は次のように再フォーマットします:

range10=[-5219, -5191, 11.7];
range11=[-5180, -5057, 56.5];

Pythonでそれらを使用するためですが、これは多くの作業です。私の質問は、Pythonで元の名前でこれらの変数を使用することがどういうわけか可能かどうかです。

4

2 に答える 2

2

何を求めているのかわかりませんが、試してみます。「その他」のプログラムのコードで、次のようにします。

  1. range*変数を最初に使用する前に、次のコードを追加します。

    class Likelihood():
        def __init__(self, x, y):
            self.range = [{} for i in range(x)] # without default values
            # if you need default values, use this code or numpy.zeros(shape=(x,y))
            #self.range = [[0 for j in range(y)] for i in range(x)]
    
    class MyDataType():
        def __init__(self, dimension_1, dimension_2):
            self.likelihood = Likelihood(dimension_1, dimension_2)
    
    ocd = [0, 1, MyDataType(100, 100)]
    
    # copy-paste your code here:
    ocd[2].likelihood.range[1][0]=[-5219, -5191, 11.7];
    ocd[2].likelihood.range[1][1]=[-5180, -5057, 56.5];
    
    print(ocd[2].likelihood.range[1][0])
    
  2. すべてrange10ocd[2].likelihood.range[1][0]に置き換えます。たとえば、Notepad ++の正規表現では、次のように置き換えます。

    Find what:    range(\d)(\d)
    Replace with: ocd[2].likelihood.range[\1][\2]
    
    i.e. from code: print(range10)
    to code:        print(ocd[2].likelihood.range[1][0])
    
于 2012-07-01T17:49:57.183 に答える
0

あなたはpythonicの方法でそれを行うことができます:

def range_function(row, column):
    return ocd[2].likelihood.range[row][column]

range_function(1, 0) == [-5219, -5191, 11.7]
于 2012-07-01T17:34:01.403 に答える