将2个阵列同步到另一个阵列(节点连接)

时间:2015-07-30 13:17:42

标签: python arrays

我想从点/节点数组创建一个点/节点连接数组。

我想从另外两个阵列A和B创建一个阵列,阵列C(8列)。阵列A是2列阵列,阵列B是4列阵列。

示例如下。数组A是一系列具有x和y坐标的点/节点。阵列的每一行对应于特定的点/节点号,例如

Array A = [[x1,y1],[x2,y2]....[xn,yn]] 

其中x1y1代表点/节点1的xy坐标,依此类推。

数组B是这些节点的连接,以构成特定的多边形形状。

Array B = [[1, 2, 193, 192],[3, 4, 194, 193], [5, 6, 195, 194]...........] 

其中数组每行中的数字表示数组A中的点/节点数。

我想创建一个数组C,它接收来自数组A的x和y坐标并将它们插入数组B.即将节点编号拆分为该节点的x和y坐标,并将4列转换为8列

8列数组C应采用以下形式:

Array C = [[x1,y1,x2,y2,x193,y193,x192,y192].......] 

其中xn,yn表示数组A中节点编号的xy坐标。

2 个答案:

答案 0 :(得分:0)

作为提示,您可以对此任务使用嵌套列表推导,例如:

>>> Array_A = [['x1','y1'],['x2','y2'],['x3','y3'],['x4','y4'],['x5','y5'],['x6','y6'],['x7','y7'],['x8','y8'],['x9','y9']] 
>>> Array_B = [[1, 2, 9],[3, 4, 7], [5,6,8]]
>>> [[j for i,j in enumerate(Array_A,1) if i in indices] for indices in Array_B]
[[['x1', 'y1'], ['x2', 'y2'], ['x9', 'y9']], [['x3', 'y3'], ['x4', 'y4'], ['x7', 'y7']], [['x5', 'y5'], ['x6', 'y6'], ['x8', 'y8']]]
>>> 

答案 1 :(得分:0)

假设您有信心AB具有相同数量的元素,您可以这样做:

A = [
        ['x1', 'y1'],
        ['x2', 'y2'],
]

B = [
        [1, 2, 193, 192],
        [3, 4, 194, 193],
]

C = [cols+B[i] for i, cols in enumerate(A)]

# gives: [['x1', 'y1', 1, 2, 193, 192], ['x2', 'y2', 3, 4, 194, 193]]

请注意,如果这是您想要的结果,我会在需要时更正。