Ich versuche, einen Datensatz mit folgenden Struktur aus einer Liste von Elementen mit Eigenschaften prop1
und prop2
zu generieren:kategorisierten Daten generieren aus der Liste in O (n) gesetzt
result[p1][p2] => list of item with prop1=p1 and prop2=p2
ich in der Lage gewesen, zu tun es in O (n2) mit:
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
}
aber habe es nicht in weniger Zeit zu tun in der Lage, einen Weg zu finden. Ist es möglich, dies in O (n) zu erreichen?
Das wird nicht ganz funktioniert. Sie müssen 'defaultdict (lambda: defaultdict (list))' verwenden. In Ihrer Version wird 'result [item.prop1]' eine Liste sein, daher wird der Versuch, auf 'result [item.prop1] [item.prop2] '' zuzugreifen, wahrscheinlich fehlschlagen. – BrenBarn
Sie haben absolut Recht - ich habe übersehen, dass es eine 2d-Matrix war. Fest! – Karin