合并具有不同维度的两个列表

时间:2016-12-01 07:07:14

标签: python

我有2个不同形状的不同数据列表。我需要将它们合并为一个。

列表A的形状为(100 x 5),列表B的形状为(1×100)。

示例示例:

列表A:

[
 [  1.  34.62365962  78.02469282  11.    78.      81.        ]
 [  1.  30.28671077  43.89499752  13.    17.      51.        ]
 [  1.  35.84740877  72.90219803  74.    74.      62.        ]
]

列表B:

  [0 1 1]

我想要实现的是来自列表A和列表B的数据,如下所示:

<----------------- List A data----------------------------> <##List B###>
[
     [  1.  34.62365962  78.02469282  11.    78.      81.       0   ]
     [  1.  30.28671077  43.89499752  13.    17.      51.       1   ]
     [  1.  35.84740877  72.90219803  74.    74.      62.       1   ]
]

5 个答案:

答案 0 :(得分:1)

您可以循环执行此操作。

for i in range(0,100):
     A[i].append(B[i])

这是你想要的吗?

答案 1 :(得分:1)

您可以使用列表理解:

[v1+[v2] for v1,v2 in zip(A,B)]

答案 2 :(得分:1)

只需输入列表a和b:

   ListA =[
     [  1.,  34.62365962,  78.02469282,  11.,    78.,   81.  ],
     [  1.,  30.28671077,  43.89499752,  13.,    17.,   51.  ],
     [  1.,  35.84740877,  72.90219803 , 74.,    74. ,  62.  ]
    ]

    ListB = [0, 1,1]

    print(list(list(a) for a in zip(ListA, ListB)))

输出:

[
 [1.0, 34.62365962, 78.02469282, 11.0, 78.0, 81.0,  0],
 [1.0, 30.28671077, 43.89499752, 13.0, 17.0, 51.0,  1], 
 [1.0, 35.84740877, 72.90219803, 74.0, 74.0, 62.0,  1]
]

答案 3 :(得分:0)

只需循环播放并附加

for x in range(0,100):
 A[x].append(B[x])

答案 4 :(得分:0)

一个简单的zip就可以了:

>>> for a, b in zip(A, B):
...     a.append(b)
>>> print(A)
[[1.0, 34.62365962, 78.02469282, 11.0, 78.0, 81.0, 0],
 [1.0, 30.28671077, 43.89499752, 13.0, 17.0, 51.0, 1],
 [1.0, 35.84740877, 72.90219803, 74.0, 74.0, 62.0, 1]]