簡體   English   中英

Python 對象列表理解

[英]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]']

所以我得到的是一個字符串,但我需要這個變量。

只是為了添加更多背景信息。 我正在使用具有腳本 function 的 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM