2016-09-29 7 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를 만드는 데 성공? 그렇지 않다면 어떻게 만들 수 있습니까?

추신 : 나는 목록으로 사전을 채우고 그 사전에 다른 이름을 할당하는 목록 이해력에 대한 아이디어를 찾지 못했습니다. 그래서이 질문은이 웹 사이트의 다른 질문과 다릅니다.

답변

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

감사합니다 평가/간부를 피해야한다 일반적으로 그것을

을 얼마나 아마! 귀하의 간결하고 스마트 한 코드에 많은 감사를드립니다! 알았다. 그러나 그 결과 목록 상자 안에 사전의 이름으로 문자열이 생깁니다. 문자열 대신 변수로 사전 이름을 어떻게 사용할 수 있습니까? –

+0

당신은 그걸하고 싶지 않습니다 ... 변수 이름을 사용하여 사전에 색인을 만듭니다 ... –

+0

Opps. 죄송합니다. 나는 대답을 얻었다. 사전에는 항상 문자열 키 이름이 있습니다. 바보 같은 혐의로 유감이야. –

관련 문제