Python 如何在命令中定义循环?
我正在用python为ABAQUS软件编写代码,我需要在代码的一部分中编写以下代码Python 如何在命令中定义循环?,python,abaqus,Python,Abaqus,我正在用python为ABAQUS软件编写代码,我需要在代码的一部分中编写以下代码 a1.InstanceFromBooleanMerge(name='agg', instances=(a1.instances['Part-1-1'], a1.instances['Part-2-1'], ), keepIntersections=ON, originalInstances=DELETE, domain=GEOMETRY) 在前面提到的代码中,部分的数量会有所不同,在运行代码之前
a1.InstanceFromBooleanMerge(name='agg', instances=(a1.instances['Part-1-1'],
a1.instances['Part-2-1'], ), keepIntersections=ON,
originalInstances=DELETE, domain=GEOMETRY)
在前面提到的代码中,部分的数量会有所不同,在运行代码之前,我不知道我有多少部分
例如,如果我有3个部分,如何调整代码?在这种情况下,代码必须与以下代码相同:
a1.InstanceFromBooleanMerge(name='agg', instances=(a1.instances['Part-1-1'],
a1.instances['Part-2-1'], a1.instances['Part-3-1'],),
keepIntersections=ON, originalInstances=DELETE, domain=GEOMETRY)
如您所见,这是一个命令,我不知道如何在命令中定义For loop之类的内容???您可以使用列表理解在方法调用中建立列表:
a1.InstanceFromBooleanMerge(
name='agg',
instances=tuple([a1.instances["Part-%s-1" % i] for i in range(1,4)]),
keepIntersections=ON,
originalInstances=DELETE,
domain=GEOMETRY)
instances = tuple([a1.instances["Part-%s-1" % i] for i in range(1,4)])
a1.InstanceFromBooleanMerge(
name='agg',
instances=instances,
keepIntersections=ON,
originalInstances=DELETE,
domain=GEOMETRY)
其中4是得到的矩阵长度加1,例如range1,lenmatrix+1
另一种方法是在方法调用之外构建元组:
a1.InstanceFromBooleanMerge(
name='agg',
instances=tuple([a1.instances["Part-%s-1" % i] for i in range(1,4)]),
keepIntersections=ON,
originalInstances=DELETE,
domain=GEOMETRY)
instances = tuple([a1.instances["Part-%s-1" % i] for i in range(1,4)])
a1.InstanceFromBooleanMerge(
name='agg',
instances=instances,
keepIntersections=ON,
originalInstances=DELETE,
domain=GEOMETRY)
什么决定了零件的数量?代码的哪一部分?你是说字典里所有的键吗?如果顺序不重要,可以执行->instances=tuplea1.instances.values您可以在InstanceFromBooleanMerge之外创建实例的元组变量,然后将该变量作为实例传入argument@MYGz它是通过计算矩阵的长度来确定的。是a1.instances['Part-i-1']@MYGz你在哪里看到的?在上面的问题中,它说,例如a1.实例['Part-3-1']这些是字典的键。啊,我明白了,我以为你指的是键的构建。我修复了这个部分,谢谢你的帮助hint@Jakub:修复了字符串格式,你说得对,这样更好。还详细说明了如何在函数调用之外构建元组