2016-09-29 3 views
0

私は、辞書のリストを作成する必要があります。辞書のリストを作成するには?

box1 = {'x' : 10, 'y' : 10, 'direction' : 'right'} 
box2 = {'x' : 20, 'y' : 10, 'direction' : 'right'} 
box3 = {'x' : 30, 'y' : 10, 'direction' : 'right'} 
box4 = {'x' : 40, 'y' : 10, 'direction' : 'right'} 
box5 = {'x' : 50, 'y' : 10, 'direction' : 'right'} 
box6 = {'x' : 60, 'y' : 10, 'direction' : 'right'} 
box7 = {'x' : 70, 'y' : 10, 'direction' : 'right'} 
box8 = {'x' : 80, 'y' : 10, 'direction' : 'right'} 
box9 = {'x' : 90, 'y' : 10, 'direction' : 'right'} 

私はループ

for i in range(9): 
    new_n = 'box' + str(i+1) 
    exec(new_n + " = {}") 

を使用して唯一の最初のdictionatyのBOX1を作成することに成功した私は、このようなリストを作成するループとexec方法を使用することはできますか? そうでない場合は、どうすれば作成できますか?

P .:辞書でリストを埋めて、その辞書に異なる名前を付けるリストの理解のアイディアを見つけることができませんでした。だからこの質問はこのウェブサイト上の他の質問とは異なる。

答えて

1
boxes = {"box%d"%i:{'x' : x, 'y' : 10, 'direction' : 'right'} for i,x in enumerate(range(10,91,10),1)} 

print boxes["box1"] 

my_var = "box1" 
print boxes[my_var] 

は、私はあなたが

+0

ありがとうのeval/execのを避ける必要があり、一般的にそれを

を行うだろうか、おそらくです!私はあなたの簡潔でスマートなコードに多く感謝します!わかった。しかし結果として、リストボックス内の辞書の名前として文字列を取得します。文字列ではなく変数として辞書の名前をどのように持つことができますか教えてください。 –

+0

あなたはそれをしたくありません...辞書にインデックスを付けるために変数名を使用してください... –

+0

Opps。ごめんなさい。私は答えを得た。辞書には常に文字列キー名があります。愚かな眠気をおかけして申し訳ありません。 –

関連する問題