创建一个名称仅在程序运行后才知道的列表

时间:2013-04-18 20:22:02

标签: python list python-2.7

我想制作一个列表并将其命名为我在运行程序后才知道的名称:

例如:

#making shelfs
group_number = 1
group_name = 'group' + str(group_number)
print group_name

group_name将是:group1

现在我想创建一个名为group1的空列表。怎么做这样的事情?

3 个答案:

答案 0 :(得分:5)

通常你只需将它放入字典中:

d = {group_name:[]}

现在您可以通过字典访问您的列表了。 e.g:

d['group1'].append('Hello World!')

另一种方法是修改globals()函数(字典)的结果。这绝对是不好的做法,应该避免,但我在这里加入它,因为我们总是很高兴知道你正在使用的工具:

globals()[group_name] = []
group1.append("Hello World!")

答案 1 :(得分:2)

您想要创建以“group”开头的变量的伪命名空间。为什么不改用字典?

#making shelfs
groups = {}
group_number = 1
name = str(group_number)
groups[name] = [] # or whatever
print groups[name]

这与@ mgilson的答案略有不同,因为我试图鼓励您为每个相关对象集合创建新的命名空间。

答案 2 :(得分:1)

你这样做:

locals()['my_variable_name'] = _whatever_you_wish_

globals()['my_variable_name'] = _whatever_you_wish_

vars()['my_variable_name'] = _whatever_you_wish_

谷歌自己找出差异:P