基于存储在python中的变量中的值创建列表

pic*_*and 0 python

我有一个带有字符串值的变量.我想创建一个列表,其值为其名称/标识符,然后将值附加到列表中.所以假设变量s = "temp1",我想创建一个名为的列表temp1.显然,就我而言,我不知道它的价值是什么s.

Mar*_*ers 9

别.创建动态变量很少是一个好主意,如果您尝试创建本地名称(在函数内部),则很难并且会极大地影响性能.

改为使用字典:

lists = {}
lists[strs] = []
lists[strs].append(somevalue)
Run Code Online (Sandbox Code Playgroud)

命名空间只是用于查找名称的代码的默认字典.创建更多此类字典会更容易,更简洁.

您仍然可以使用globals()函数访问全局(模块命名空间,该函数返回(可写)字典.您可以使用函数访问本地命名空间locals(),但写入此函数通常无效,因为函数中的本地命名空间访问已经过优化.

在Python 2中,您可以通过exec在函数中使用语句来删除该优化.在Python 3中,您不能再关闭优化,因为exec语句已被exec()函数替换,这意味着编译器无法再确定您是否可能使用它来写入本地命名空间.