【发布时间】:2021-10-05 10:04:09
【问题描述】:
这个问题是关于列表理解的。但是,可迭代对象有点复杂,所以我对如何编写这个 List Comprehension 感到困惑。
所以,我有一些像这样的 pydantic 类
class textbox(BaseModel):
x1: int
y1: int
x2: int
y2: int
class Page(BaseModel):
color: List[RGB]
textboxes: List[textbox]
class Notepad(BaseModel):
pages: List[Page]
假设所有这些都分配了适当的值。我想做一个这样的列表理解,这样我就可以分别访问每个页面,并且每个页面都可以访问每个文本框并将它们放在一个列表中。
TotalTextBox = [textbox in textboxes for Notepad.pages[i].textboxes]
但我遇到了一个问题,因为列表理解不允许我使用计数器变量 i。谁能帮我解决这个问题?谢谢。
附:我不想使用枚举。我想要一个简单的列表作为结果。
【问题讨论】:
-
@Haroldo_OK:你的意思是
enumerate()。 -
[tb for page in notepad.pages for tb in page.textboxes]…? -
枚举对象可以用在列表推导中,事实上,在大多数地方你会使用列表;没有问题。
-
是的,虽然
enumerate()返回一个对象,但它被设计为迭代。这个网站上有很多examples。 -
如果您可以提供并使用示例数据更新您的问题以帮助用户重现您的问题,这将很有帮助。