动态创建变量(用于列表)

时间:2017-08-03 06:01:19

标签: python python-2.7

我知道这可能是一个坏主意..但似乎是在创建所有可能选项之外执行此操作的“最佳”方法,并忽略未使用的结果。我有一个源文件,其中包含12个潜在值的值。

我已经在列表中包含了所有必需的字符串,但是如果这有意义的话,我的目标是使每个字符串成为列表的开头?

例如,当前列表包含“a,b,c,d,e”循环中所需的输出将是'a = [] .. b = []'等。

2 个答案:

答案 0 :(得分:5)

假设你没有" 开始列表",但" 名称列表" (正如你的代码所暗示的那样)......是的,这是一个坏主意。您应该使用dict代替

d = {var_name: [] for var_name in current_list}

实际上这就是Python在幕后所做的事情。当你写

a = []
然后,Python正在向a: []添加一个条目dict(基本上等同于)globals()。如果在模块范围内,您可以使用locals()函数查看该字典中的内容,如果在函数内部,则可以使用period_stats | Amount Y | 12070.00 M | 2580.00

答案 1 :(得分:3)

建议通过动态生成变量来污染您的命名空间。这可能尤其与大型列表无关。你应该只使用字典。

In [941]: d = {x : [] for x in  'abcde'}; d
Out[941]: {'a': [], 'b': [], 'c': [], 'd': [], 'e': []}

看看这是多么容易创建和维护。