命名具有可变内容的列表

时间:2017-11-09 17:28:53

标签: python python-2.7

如何使用变量的内容创建新列表?

编辑:为了澄清,我应该在运行后有3个新列表。我应该有一个名为dev,test和prod的列表。

#!/usr/bin/python

group_list = ['dev', 'test', 'prod']

for group in group_list:
    # this is obviously going to create a new list called group
    # i want to create a list using the contents of the "group" variable 
    group = []

3 个答案:

答案 0 :(得分:1)

有几种不同的方法可以做到这一点,但最简单的方法是使用字典。

group_dict = {group: [] for group in group_list}

这将为您留下字典

{
   'dev': [],
   'test': [],
   'prod': []
}

可让您在处理它时访问所有方便的pythonic工具。 (迭代等)

答案 1 :(得分:0)

这是推荐,无论你想做什么可能更好的方法,但这是如何将字符串转换为变量名称

#!/usr/bin/python

group_list = ['dev', 'test', 'prod']

for group in group_list:
    globals()[group] = []

print(dev)  # -> []
     # ^ 'dev' is now a variable name!

"魔法"这是因为globals()dictionary,其中Python存储了所有已定义的变量。就像任何其他dictionary一样,您可以访问并修改它。但不要。

答案 2 :(得分:-1)

for g in group:
    exec(g + ' = []')

这将创建由组中的值命名的列表。使用'exec`要非常谨慎。确保它是exec中的代码。