Olé,
Le 28 septembre 2011 13:11, Alioune Dia <[email protected]> a écrit :
> 'lut
>
>> a quoi sert exactement le 'groupby' svp? et aussi, avez vous d'autres
>> maniere de realiser la meme chose? merci encore et a plus.
>>
>
> Voici l'exemple classique, quelqu'un comme moi qui connait pas itertools
> mais applique uniquement les bases algorithmiques, l’idéal bien sure
> c'est d’utiliser la les fonctions interne de python , mais il faut une
> mémoire d’éléphant
> pour les avoir toutes en tête <ne dites pas a Thomas Noel que j'ai dis ça
> ;)'>)
>
Je suis le premier à ne pas les connaitre, ne t'en fais pas... On a autre
chose à faire, non ?
>>> def count_words(s):
> ... l =s.split()
> ... m={}
> ... for j in l:
> ... m[j] =1 if j not in m else m[j] + 1
> ... for k, l in m.items():
> ... print k, l
>
Ca me semble un code efficace, même si je n'aime pas la ligne "m[j]=..."
avec son if mal placé... mais c'est une question de goût, moi je suis pas
fan de ce genre de sucre ;)
En utilisant un groupby, le code peut être bien obscurci :
from itertools import groupby
def count_words(s):
for k, g in groupby(sorted(s.split())):
print k, len(list(g))
En revanche je ne suis pas certain que ça donne une fonction très O(n)...
mais qui s'en soucie encore aujourd'hui, hélas ? ;)
a+
--
Thomas
--
Ce message a été envoyé à la liste [email protected]
Gestion de votre abonnement : http://dakarlug.org/liste
Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug
Le site du DakarLUG : http://dakarlug.org