使用嵌套列表理解提高执行速度

2024-05-14 14:39:47 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我花了很长时间执行的代码。如何在Python的列表理解中实现它以提高速度和效率

buildings=[]
for bi in range(1449):
    for si in range (16):
        for m in range(3):
            a= train[(train['building_id']==bi)&(train['site_id']==si)&(train['meter']==m)]
            if not a.empty:

                buildings.append(a.values)

Tags: 代码inid列表forsiterangetrain
1条回答
网友
1楼 · 发布于 2024-05-14 14:39:47

如果没有您的示例数据,很难判断这是否正确,但这在理论上应该是可行的:

buildings = [
             x for x in
                 [
                 train[(train['building_id']==bi)&(train['site_id']==si)&(train['meter']==m)].values
                 for bi in range(1449)
                 for si in range(16)
                 for m in range(3)
                 ]
            if not x.empty
            ]

相关问题 更多 >

    热门问题