【发布时间】:2020-03-23 08:45:50
【问题描述】:
下面是我的代码,它需要很长时间才能执行。如何在 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)
【问题讨论】:
-
分享您的示例数据。
-
列表理解只是循环的语法糖。它们的优势之一是可读性,而不是速度。
1449*16*3仍然是69552,即使您在等效理解中隐藏了嵌套循环。
标签: python list for-loop list-comprehension nested-lists