我知道这可能是一个坏主意..但似乎是在创建所有可能选项之外执行此操作的“最佳”方法,并忽略未使用的结果。我有一个源文件,其中包含12个潜在值的值。
我已经在列表中包含了所有必需的字符串,但是如果这有意义的话,我的目标是使每个字符串成为列表的开头?
例如,当前列表包含“a,b,c,d,e”循环中所需的输出将是'a = [] .. b = []'等。
答案 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': []}
看看这是多么容易创建和维护。