1

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

例如:

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

group_name 将是:group1

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

4

3 回答 3

5

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

d = {group_name:[]}

现在您可以通过字典访问您的列表。例如:

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

另一种方法是修改globals()函数的结果(这是一个字典)。这绝对是不好的做法,应该避免,但我将其包括在此处,因为了解更多有关您正在使用的工具的信息总是很高兴:

globals()[group_name] = []
group1.append("Hello World!")
于 2013-04-18T20:23:06.367 回答
2

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

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

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

于 2013-04-18T20:35:45.030 回答
1

你来做这件事:

locals()['my_variable_name'] = _whatever_you_wish_

或者

globals()['my_variable_name'] = _whatever_you_wish_

或者

vars()['my_variable_name'] = _whatever_you_wish_

谷歌自己找出差异:P

于 2013-04-18T20:27:15.300 回答