【发布时间】:2022-01-19 09:53:36
【问题描述】:
根据条件将列表拆分为多个子列表的最快方法是什么?每个条件代表一个单独的子列表。
一种将listOfObjects 拆分为子列表的方法(三个子列表用于演示,但也可以更多):
listOfObjects = [.......]
l1, l2, l3 = [], [], []
for l in listOfObjects:
if l.someAttribute == "l1":
l1.append(l)
elif l.someAttribute == "l2":
l2.append(l)
else:
l3.append(l)
这种方式看起来一点也不像pythonic,而且还需要相当长的时间。是否有更快的方法,例如使用map?
有一个类似的问题,但只有一个条件,即两个结果列表:How to split a list based on a condition?
【问题讨论】:
-
您想将
l1和l2以外的类别放在一个列表中吗?还是每个类别都会进入一个单独的列表? -
每个类别一个单独的列表
-
请在问题本身中提及这一点。这对未来的读者会有帮助。评论可能会被删除。
标签: python python-3.x list performance