Python - 创建20个变量的有效方法?

时间:2011-07-13 12:04:48

标签: python variables exec creation

我需要在Python中创建20个变量。这些变量都是需要的,它们最初应该是空字符串,空字符串稍后将被其他字符串替换。我不能在需要时根据需要创建变量,因为我还有一些if / else语句需要检查变量是否仍为空或已经等于其他字符串。

而不是写

variable_a = ''
variable_b = ''
....

我想像

list = ['a', 'b']
for item in list:
    exec("'variable_'+item+' = '''")

此代码不会导致错误,但仍然无法实现我所期望的 - 变量不是使用名称“variable_1”创建的,依此类推。

我的错误在哪里?

谢谢,Woodpicker

3 个答案:

答案 0 :(得分:10)

  

我的错误在哪里?

可能有三个错误。首先,'variable_' + 'a'显然不等于'variable_1'。第二个是exec参数中的引用。做

for x in list:
    exec("variable_%s = ''" % x)

获取variable_a等。

第三个错误是你没有使用listdict。只是做

variable = dict((x, '') for x in list)

然后使用a获取“变量”variable['a']的内容。不要对抗语言。使用它。

答案 1 :(得分:-2)

我和其他人(没有使用列表或哈希)有相同的问题,但是如果你需要,你可以试试这个:

for i in xrange(1,20):
    locals()['variable_%s' %i] = ''

我假设你只需要在本地范围内。有关本地人的更多信息,请参阅the manual

答案 2 :(得分:-2)

从未使用它,但这样的事情可能有效:

liste = ['a', 'b']
for item in liste:
    locals()[item] = ''