Python:不带“

我正在尝试使用Abaqus(商业FEA代码)脚本接口来生成FE模型,尽管我的问题专门与Python有关,但是对于为什么要这样做的背景有所了解.

Abaqus具有内置的布尔合并操作,该操作需要使用以下语法:

a.InstanceFromBooleanMerge(name='name_string', instances=(
    a.instances['string1'], a.instances['string2'], 
    a.instances['string3'], ), originalInstances=SUPPRESS, 
    domain=GEOMETRY)

“ instances”参数指定为元组,其中每个元素的格式

a.instances['string1']

我正在尝试使该元组中的元素数以及其中的名称明显可编写脚本.目前,我有如下代码:

my_list = []
for i in range(4):
    name = str('a.instances[\'')+str('name_')+str(i)+str('\']')
    my_list.append(name)
my_list = tuple(my_list)
print my_list

但是,这给出了:

("a.instances['name_0']", "a.instances['name_1']", "a.instances['name_2']",   
    a.instances['name_3']")

我曾尝试使用lstrip和rstrip删除“字符,但无济于事.是否有一种生成任意长度的元组的方式,其中元素未用反逗号括起来?该格式由Abaqus接口指定,因此没有其他可以使用的格式.

非常感谢

解决方法:

您接近了,请尝试:

for i in range(4):
    val = a.instances["name_"+str(i)]
    my_list.append(val)

您可以使用生成器表达式使它更短:

my_list = tuple(a.instances["name_"+str(i)] for i in range(4))
上一篇:1046 Shortest Distance (20 分)


下一篇:1046. 最后一块石头的重量