-2

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

而不是写

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

我想像

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

此代码不会导致错误,但仍然没有达到我的预期 - 变量不是使用名称“variable_1”等创建的。

我的错误在哪里?

谢谢, 啄木鸟

4

3 回答 3

10

我的错误在哪里?

可能有三个错误。第一个'variable_' + 'a'显然不等于'variable_1'。第二个是在论点中的引用exec。做

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

得到variable_a

第三个错误是您没有为此使用listor dict。做就是了

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

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

于 2011-07-13T12:11:15.540 回答
-2

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

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

我假设您只需要在本地范围内使用它。有关本地人的更多信息,请参阅手册

于 2011-07-13T12:16:24.487 回答
-2

从未使用过它,但这样的事情可能会起作用:

liste = ['a', 'b']
for item in liste:
    locals()[item] = ''
于 2011-07-13T12:16:27.487 回答