2016-09-29 63 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 + " = {}") 

我可以使用循環和exec方法來創建這樣一個列表來創建只有一個第一dictionaty BOX1? 如果不是,我該如何創建它?

P.S .:我找不到一個列表理解的概念,它使用字典填充列表併爲這些字典分配不同的名稱。這就是爲什麼這個問題與本網站上的其他人不同。

回答

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] 

大概是我會做

一般而言,您應避免EVAL/EXEC

+0

謝謝!我非常感謝你的簡潔明瞭的代碼!我知道了。但是,結果我得到了字符串作爲列表框內的字典名稱。你能告訴我,我可以如何將這些字典的名稱作爲變量而不是字符串? –

+0

你不想這樣做...使用變量名稱索引到字典... –

+0

Opps。抱歉。我得到了答案。字典總是有字符串鍵名稱。對不起,愚蠢的quiestion。 –