从包含字符和整数混合的元组列表中提取整数

Extracting integer from a tuple list containing a mix of characters and integers

我想从元组列表中提取一个整数 (30),如下所示,它位于集合“顶点”之后。代码必须有一些逻辑来寻找顶点。

(mdb.models['model-3'].rootAssembly.instances['Circular_knit - 2, 3, 3-1'].vertices[30], (-3.61088101472848e-14, 5.0, -3.95139073393513e-16))

我找到了当元组仅包含整数时提取此整数的示例。我这里的情况是,在一组特定的字符(“顶点”)之后,我想提取整数值('30')。 如果有任何建议,我将不胜感激。

>>>v
[mdb.models['model-3'].rootAssembly.instances['Circular_knit - 2, 3, 3-1'].vertices[30], (-3.61088101472848e-14, 5.0, -3.95139073393513e-16)]
>>> v[0]
mdb.models['model-3'].rootAssembly.instances['Circular_knit - 2, 3, 3-1'].vertices[30]
k=v[0]
k=str(k)
>>> i=0
>>> num_list = [int(i.split('[')[1]) for i in k]
IndexError: list index out of range

始终先查看文档:它实际上可以为您节省很多时间!

让我们拆分您的对象 mdb.models['model-3'].rootAssembly.instances['Circular_knit - 2, 3, 3-1'].vertices[30]:

  • mdb - 高级 Abaqus 模型数据库对象。在其他成员中,它有一个容器 models,其中包含您实际数据库的所有模型;
  • .models['model-3'] - 名称为 'model-3' 的模型对象。在它的成员中你可以找到 rootAssembly.
  • .rootAssembly - 所有实例的根对象(大约因为 model 对象是所有部分的“根”);
  • .instances['Circular_knit - 2, 3, 3-1'] - 一个 Instance 对象,它是您的 Part 对象之一的实例。它包含许多成员,其中之一是 vertices 容器(请注意,如果您使用的是孤立网格,您将只有节点,而没有顶点)。
  • .vertices[30] - 最后在这里您访问了索引“30”下的顶点,因此,您拥有了 Vertex 对象。任何顶点对象都有多个成员,其中之一是 index.

因此,您问题的答案将是:

v[0].index