2010-07-14 18 views
5

Je n'ai pas besoin de la paresse de itertools.groupby. Je veux juste ma liste groupe dans un dict des listes en tant que tel:Est-ce que python a une version non-paresseuse de itertools.groupby?

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

Y at-il une fonction standard qui fait déjà?

+0

Est-ce que la paresse fait mal de quelque façon que ce soit? – sth

+0

En principe, une version non-paresseuse pourrait être plus efficace - elle permet de faire le groupe entier en une fois, évitant les surcharges de paresse et bien utiliser le cache. Même ainsi, je serais surpris si cela vous cause de vrais problèmes. Mon conseil, volé de la vieille chanson - "ne vous inquiétez pas être heureux". – Steve314

+0

Il est difficile de tester le code paresseux dans le repl. – dvogel

Répondre

4

Non, aucune fonction n'est incluse dans la bibliothèque standard pour cela.

+1

+1 Cela répond exactement à la question –

-2

Il semble que vous ayez déjà une fonction d'une ligne qui fait ce que vous voulez. Utilise le.

+1

Ma question n'est pas "comment je fais ça?" Je cherche à éviter de réimplémenter une fonction standard. – dvogel