我想从点/节点数组创建一个点/节点连接数组。
我想从另外两个阵列A和B创建一个阵列,阵列C(8列)。阵列A是2列阵列,阵列B是4列阵列。
示例如下。数组A是一系列具有x和y坐标的点/节点。阵列的每一行对应于特定的点/节点号,例如
Array A = [[x1,y1],[x2,y2]....[xn,yn]]
其中x1
,y1
代表点/节点1的x
和y
坐标,依此类推。
数组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中节点编号的x
和y
坐标。
答案 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)
假设您有信心A
和B
具有相同数量的元素,您可以这样做:
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]]
请注意,如果这是您想要的结果,我会在需要时更正。