我是python的初学者,并且需要在python脚本中动态声明/创建一些列表。我需要创建4个列表对象,如depth_1,depth_2,depth_3,depth_4,输入为4.Like
for (i = 1; i <= depth; i++)
{
ArrayList depth_i = new ArrayList(); //or as depth_i=[] in python
}
这样它就可以动态创建lists.Can你能给我一个解决方案吗?
期待感谢你
答案 0 :(得分:6)
您可以使用globals()
或locals()
执行您想要的操作。
>>> g = globals()
>>> for i in range(1, 5):
... g['depth_{0}'.format(i)] = []
...
>>> depth_1
[]
>>> depth_2
[]
>>> depth_3
[]
>>> depth_4
[]
>>> depth_5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'depth_5' is not defined
为什么不使用列表清单?
>>> depths = [[] for i in range(4)]
>>> depths
[[], [], [], []]
答案 1 :(得分:4)
你无法在Python中实现这一点。建议的方法是使用列表来存储您想要的四个列表:
>>> depth = [[]]*4
>>> depth
[[], [], [], []]
或使用globals
和locals
等技巧。但是不要这样做。这不是一个好的选择:
>>> for i in range(4):
... globals()['depth_{}'.format(i)] = []
>>> depth_1
[]
答案 2 :(得分:3)
我认为depth_i
存在风险,因此不会使用它。我建议你改用以下方法:
depth = [[]]
for i in range(4):
depth.append([])
现在,您只需使用depth_1
来呼叫depth[1]
即可。如果可能,您应该从depth[0]
开始。
然后您的代码将改为depth = []
。