如何创建词典列表?
问题描述:
我需要创建一个字典列表:如何创建词典列表?
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 .:我找不到一个列表理解的概念,它使用字典填充列表并为这些字典分配不同的名称。这就是为什么这个问题与本网站上的其他人不同。
答
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
谢谢!我非常感谢你的简洁明了的代码!我知道了。但是,结果我得到了字符串作为列表框内的字典名称。你能告诉我,我可以如何将这些字典的名称作为变量而不是字符串? –
你不想这样做...使用变量名称索引到字典... –
Opps。抱歉。我得到了答案。字典总是有字符串键名称。对不起,愚蠢的quiestion。 –