从列表中提取数据并对其进行排序

时间:2013-09-26 15:17:52

标签: python extract

问题陈述:

  

我有一个由两个节点有限元组成的有限元网格(因此每个有限元(线)由位于其极值中的两个节点组成)。我在网格中有几种类型的组件(有限元组)。因此,例如,垂直分量由从下到上垂直对齐的几个有限元组成,相邻的有限元共享一个公共节点。

     
    

我需要获取一个列表列表,其中每个列表都有每个垂直组件的节点ID(节点号),从下到上排序。

  

我拥有的: 我有两个列表列表:nodeselements nodeselements具有以下结构:

nodes = [[node_ID1, X1, Y1, Z1],[node_ID2, X2, Y2, Z2], ...]]
elements = [[element_ID1, nodeID_a, nodeID_b],[element_ID2, nodeID_b, nodeID_c], ...]]

我还有另外两个名为nodesVelementsV的列表,它们分别代表节点和元素的子集样本:

nodesV = [[node_IDa, node_IDb, node_IDc],[ ....]]
elementsV = [[element_IDa, element_IDb, element_IDc],[ ....]]

这两个列表分别代表所有垂直组件的节点和元素。

我需要什么: 基于以上数据,我需要构建一个列表列表,其中每个列表包含每个垂直组件的有序节点ID:

desired_list = [[first nodeID of vertical component 1, ...., last nodeID],[first nodeID of vertical component 2, ...., last nodeID], ...]]

实施例: 让我们假设我们在网格中只有两个组件,每个组件只由一个元素组成,一个是垂直的:

nodes = [[1, 0, 0, 0], [2, 1, 0, 0], [3, 1, 0, 1]]
elements = [[1, 1, 2], [2, 1, 3]]

nodesV = [[1,3]] #each list can only contain 16 elements
elementsV = [[2]]

所以desired_list = [[1,3]]

如何为数千个节点网格做到这一点?

0 个答案:

没有答案