将字符串转换为变量[python]

时间:2012-04-17 08:51:16

标签: python string list

在我的程序中,我有一个需要根据变量内容访问的列表列表。

string = [
         [arg1, arg2, arg3],
         [arg1, arg2, arg3]
         ]

string2 = [
          [arg1, arg2, arg3],
          [arg1, arg2, arg3]
          ]

然而,这将永远是一个字符串。

Class.variable = 'string' # this can be either 'string' or 'string2'

我必须访问列表的代码是

newVariable = Class.variable[seperateVariable][0]

然而,这会导致错误

IndexError: string index out of range

我发现原因是因为Class.variable是一个字符串而不是一个变量。

解决这个问题的最佳缩放方式是什么?

3 个答案:

答案 0 :(得分:1)

如果Class.variable确实需要成为字符串(例如因为它是用户输入),我认为你最好使用字典:

strings = { "string": [[arg1, arg2, arg3],[arg1, arg2, arg3]], 
            "string2": [[arg1, arg2, arg3],[arg1, arg2, arg3]] }

现在您可以访问strings[separateVariable][0]

(在您的示例中,您尝试访问的"string"[separateVariable][0]separateVariable}值足够高而失败。

答案 1 :(得分:0)

将字符串分配给类变量时删除引号。另请注意与隐式类型或模块的名称冲突

Class.variable = string1

当您引用变量时,它实际上被视为字符串而不是变量。因此,变量的实际内容永远不会分配给您的Class变量。

答案 2 :(得分:0)

你可以使用builtins globals()或locals(),具体取决于'string1'的定义,你可以这样做:

Class.variable = locals()['string']