Gibt es eine nette pythonische Art, eine Liste in eine Liste von Listen zu gruppieren, wobei jede der inneren Listen nur die Elemente enthält, die die gleiche Projektion haben Benutzer als Funktion?Python: eine Liste in Unterlisten durch eine Gleichheit des projizierten Wertes gruppieren
Beispiel:
>>> x = [0, 1, 2, 3, 4, 5, 6, 7]
>>> groupby(x, projection=lambda e: e % 3)
[[0, 3, 6], [1, 4, 7], [2, 5]]
I kümmern sich nicht um die Projektion selbst, dass nur, wenn es für einige Elemente gleich sind diese in der gleichen sublist enden.
suche ich im Grunde für einen Python-Äquivalent der Haskell Funktion GHC.Exts.groupWith
:
Prelude> import GHC.Exts
Prelude GHC.Exts> groupWith (`mod` 3) [0..7]
[[0,3,6],[1,4,7],[2,5]]
'np.array (L)' sollte wahrscheinlich in einer temporären Variable gespeichert werden, so dass es nicht für jeden Schlüssel (Vorhersage) berechnet werden muss. –