生成空命名列表的最佳方法是什么?他们需要手动创建吗?我曾希望以下方法有效:
fieldlist = ['A', 'B', 'C']
for fieldname in fieldlist:
str(fieldname) + 'list' = []
实际结果:
File "<interactive input>", line 2
SyntaxError: can't assign to operator
期望的结果:
Alist = []
Blist = []
Clist = []
答案 0 :(得分:2)
使用字典。如果有的话,很少需要从字符串中动态命名变量。
fieldlist = ['A', 'B', 'C']
d = {}
for fieldname in fieldlist:
d[str(fieldname) + 'list'] = []
# {'Alist': [], 'Blist': [], 'Clist': []}
答案 1 :(得分:-1)
使用globals。您也可以尝试使用locals(),vars(),然后检查此网址以了解the differences。
PS:感谢@ShadowRanger的更正。
根据API定义:
<强>全局()强>
返回表示当前全局符号表的字典。这始终是当前模块的字典(在函数或方法内部,这是定义它的模块,而不是调用它的模块)。
如果使用globals():
,代码如下所示fieldlist = ['A', 'B', 'C']
for fieldname in fieldlist:
name=str(fieldname) + 'list'
globals()[name]=[]
print (Alist, Blist, Clist)
<强>输出:强>
[] [] []
[Finished in 0.179s]