Python:动态创建数组对象

时间:2016-06-13 20:26:32

标签: python arrays

我想从另一个数组动态创建具有变量名的数组。 说我有:

    Array1 = ['a', 'b', 'c']

我现在想以编程方式为Array1中的每个值创建一个新数组(我不知道Array1中实际有多少值,我不知道将在那里的名称)使用Array1中提供的名称。它会有效地给我:

    a = []
    b = []
    c = []

2 个答案:

答案 0 :(得分:4)

执行Array1 = [a,b,c]时,您将丢失有关用于实例化数组的变量名称的任何信息,因此我假设您的意思是Array1=['a','b','c']。在Python中,我们通常使用dict离子来解决与此相关的问题。使用字典,我们可以将'a'映射到空list,如下所示:

Array1 = ['a','b','c']
dicty = {}
for i in Array1:
    dicty[i] = []

如果这不能帮助您解决问题,请告诉我有关您要解决的问题的更多信息。

答案 1 :(得分:0)

所以必须满足一些假设。主要是,如果Array1有多个相同的条目,则您不能为它们添加不同的数组 - 例如,如果a == b评估为True ,那么你必须为它们分配相同的数组。其次,为什么不用字典保存相应数组的名称:

names_dict = {} ## names_dict[a] = (0,0), names_dict[b] = (1,0), ...
new_arrays = {}
for i in Array1.shape()[0]: 
    for j in Array1.shape()[1]:
         names_dict[Array1[i][j]] = (i,j)
         new_arrays[(i,j)] = np.array(...) ## whatever array you want to create goes in the "..." 

new_arrays[names_dict[a]]将评估元素a

的数组