2016-06-13 18 views
0

別の配列から変数名を持つ配列を動的に作成したい。 Python:動的に配列オブジェクトを作成する

Array1 = ['a', 'b', 'c'] 

は、私が今、プログラム的に私が実際に配列1になりますどのように多くの値がわからない配列1の各値(のための新しい配列を作成したいと私はその意志の名前を知らない: は、私が持っていると言いますArray1で提供されている名前を使用してください)。だから、効果的にそれは私を与える:あなたが Array1 = [a,b,c]を行うと

a = [] 
    b = [] 
    c = [] 
+0

foreachのための配列に評価し、各要素の新しい配列を作成しますか? – Li357

+0

それは正しいです、そして、それぞれの新しい配列は、マスター配列で与えられた名前をとるべきです。 – user3124181

+0

Pythonのような個別の変数を動的に作成できるかどうかはわかりません。私はそれについてより大きな専門家に任せます。妥協点として、おそらくもっと読みやすいものは、辞書のキーとしてa、b、cを持つ配列の辞書を作成してください。 – mba12

答えて

4

は、あなたは、配列をインスタンス化するために使用される変数の名前についての情報を失うので、私はあなたがArray1=['a','b','c']を意味と仮定します。 Pythonでは、一般にdictイオンを使用して、これに関連する問題を解決しています。辞書を使用して、我々はそうのような空のlist'a'からのマッピングを持つことができます。

Array1 = ['a','b','c'] 
dicty = {} 
for i in Array1: 
    dicty[i] = [] 

をこれはあなたの問題を解決しない場合は、私に解決しようとしている問題についてより多くの情報を記入してください。

+1

はい、それは私が意図したものです、私はArray1 = ['a'、 'b' 'c'] ...あなたのソリューションをありがとう、これは動作します。 – user3124181

+1

良い仕事@ブライアン、混乱に対処しながら、まだ問題の解決策を提供しています:) +1 – slezica

0

したがって、満足する必要のある仮説がいくつかあります。主に、Array1に等しい複数のエントリがある場合は、異なる配列を持つことはできません。たとえば、a == bTrueと評価された場合、両方を同じ配列に割り当てる必要があります。第二に、なぜだけではなく、対応する配列の名前で辞書を保つ:

names_dict = {} ## names_dict[a] = (0,0), names_dict[b] = (1,0), ... 
new_arrays = {} 
for i in Array1.shape()[0]: 
    for j in Array1.shape()[1]: 
     names_dict[Array1[i][j]] = (i,j) 
     new_arrays[(i,j)] = np.array(...) ## whatever array you want to create goes in the "..." 

new_arrays[names_dict[a]]は、マスター配列を超える要素a

関連する問題