我需要在Python中创建20个变量。这些变量都是需要的,它们最初应该是空字符串,空字符串稍后将被其他字符串替换。我不能在需要时根据需要创建变量,因为我还有一些if / else语句需要检查变量是否仍为空或已经等于其他字符串。
而不是写
variable_a = ''
variable_b = ''
....
我想像
list = ['a', 'b']
for item in list:
exec("'variable_'+item+' = '''")
此代码不会导致错误,但仍然无法实现我所期望的 - 变量不是使用名称“variable_1”创建的,依此类推。
我的错误在哪里?
谢谢,Woodpicker
答案 0 :(得分:10)
我的错误在哪里?
可能有三个错误。首先,'variable_' + 'a'
显然不等于'variable_1'
。第二个是exec
参数中的引用。做
for x in list:
exec("variable_%s = ''" % x)
获取variable_a
等。
第三个错误是你没有使用list
或dict
。只是做
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] = ''