2015-09-26 86 views
0

我很努力地找到一种方法来初始化一个字符串列表,使其成为以字符串作为名称的空列表。 所以基本上采取从一个字符串列表中创建一个空列表python

l = ['x', 'y', 'z'] 

,然后使它这样我可以叫Y(不是“Y”),并把它返回一个空字符串[],我可以工作。它甚至有可能吗?

回答

0

字典是否适合您?

l = ['x', 'y', 'z'] 
empties = {i: [] for i in l} 

而且empties['y'],例如,将返回[]

+0

是的我一直在考虑使用字典,它会更容易,但将不得不做一些适当的重写。如果它甚至是可能的,现在也只是一种好奇。 – user3116959

+0

有一个问题叫做“我怎样才能动态地用Python创建变量”(不知道如何链接到移动设备上)。最受投票的答案建议使用字典,但还有另一个涉及全局的可能适合您需求的答案。 (买家要小心:许多人低估了这个答案,好吧,用全局符号搞乱了) –

0

要回答你的问题,并不能告诉你想 - 或没有做的事:

locals()将返回局部变量的字典在当前范围内。您可以添加项目:

>>> for i in l: 
...  locals()[ i ] = [] 
... 
>>> x 
[] 
>>> y 
[] 
>>> z 
[] 
+0

这很不幸有点脆。当'locals()'不返回'globals()'字典时,默认情况下,返回值的更改不会传播。有一些技巧来强制更新,但我忘记了它是什么。 – mwchase