2010-07-14 12 views
5

No necesito la pereza de itertools.groupby. Sólo quiero mi lista de grupo en un diccionario de listas como tal:¿Tiene python una versión no lenta de itertools.groupby?

dict([(a, list(b)) for a,b in itertools.groupby(mylist, mykeyfunc)]) 

¿Hay una función estándar que ya hace esto?

+0

¿La holgazanería duele de alguna manera? – sth

+0

En principio, una versión no perezosa podría ser más eficiente: hace que todo el grupo se haga de una sola vez, evitando los excesos de pereza y usando bien el caché. Aun así, me sorprendería si te está causando problemas reales. Mi consejo, robado de la vieja canción: "no te preocupes, sé feliz". – Steve314

+0

Es un dolor para probar el código perezoso en el repl. – dvogel

Respuesta

4

No, no hay una función incluida en la biblioteca estándar para hacer esto.

+1

+1 Esto aborda la pregunta exactamente –

-2

Parece que ya tiene una función de una línea que hace lo que quiere. Úselo.

+1

Mi pregunta no es "¿cómo hago esto?" Estoy tratando de evitar volver a implementar una función estándar. – dvogel

Cuestiones relacionadas