别。创建动态变量很少是一个好主意,并且,如果您尝试创建本地名称(在函数内部),则很困难,并且会极大地影响性能。
请改用字典:
lists = {}
lists[strs] = []
lists[strs].append(somevalue)
命名空间只是用于在其中查找名称的代码的默认词典。创建更多此类词典更加容易和整洁。
您仍然可以使用globals()
函数访问全局(模块名称空间),该函数返回一个(可写的)字典。您可以使用来访问函数本地名称空间locals()
,但是由于已优化了函数中的本地名称空间访问,因此对其进行写入通常无效。
在Python 2中,您可以通过exec
在函数中使用语句来删除该优化。在Python 3中,您无法再关闭优化,因为该exec
语句已被exec()
function取代,这意味着编译器不再能确定地检测到您可能正在使用该函数写入本地名称空间。