我正在尝试从具有属性 prop1
和 prop2
的项目列表中生成具有以下结构的数据集:
result[p1][p2] => prop1=p1 和 prop2=p2 的项目列表
我已经能够在 O(n2) 中完成它:
result = {
item.prop1: {
item.prop2: [
i
for i in item_list
if i.prop1 == item.prop1 and i.prop2 == item.prop2
]
}
for item in item_list
}
但是一直没能找到在更短的时间内做到这一点的方法。是否有可能在 O(n) 中实现?
最佳答案
您应该只需要遍历项目一次:
from collections import defaultdict
result = defaultdict(lambda: defaultdict(list))
for item in item_list:
result[item.prop1][item.prop2].append(item)
关于python - 从 O(n) 中的列表生成分类数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38820229/