Python 列表理解 objects

Python list comprehension with objects

我正在尝试创建以下形式的列表

a = [group[0],
     group[1],
     group[2]]

当使用列表理解或知道这个方法时

a = ['group[{}]'.format(i) for i in range(3)]
a = ['group[0]',
     'group[1]',
     'group[2]']

所以我得到的是一个字符串,但我需要变量。

只是为了添加更多背景信息。我正在使用 Ansys SpaceClaim,它具有创建几何的脚本功能。当我 select 身体时,我得到以下

# Merge Bodies
no_bodies = GetRootPart().Components[0].Components.Count

targets = BodySelection.Create([GetRootPart().Components[0].Components[0].Content.Bodies[0],
GetRootPart().Components[0].Components[1].Content.Bodies[0],
GetRootPart().Components[0].Components[2].Content.Bodies[0],
GetRootPart().Bodies[0]])
result = Combine.Merge(targets, Info1)

所以我想用

之类的东西代替它
    targets = BodySelection.Create([GetRootPart().Components[0].Components[i].Content.Bodies[0] for i in range(3)])

顺便说一句,我可以看到我也错过了最后一个身体

您可以使用列表推导来遍历特定范围:

BodySelection.Create([
    GetRootPart().Components[0].Components[i].Content.Bodies[0]
    for i in range(3)
])

编辑后:

# Merge Bodies
no_bodies = GetRootPart().Components[0].Components.Count

targets = BodySelection.Create(
    [
        GetRootPart().Components[0].Components[i].Content.Bodies[0]
        for i in range(3)
    ]
    + [GetRootPart().Bodies[0]]
)
result = Combine.Merge(targets, Info1)