创建许多新列表,从循环中填充

时间:2018-02-15 00:49:28

标签: python list

生成空命名列表的最佳方法是什么?他们需要手动创建吗?我曾希望以下方法有效:

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 = []

2 个答案:

答案 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]