Le 17/10/2011 13:13, Mor Talla Gueye a écrit :
Je voudrais conserver uniquement les mots similaires(et qui sont successifs au 
moins nombre d’occurrence>=2)


Je voudrais un code en python qui me permet de faire ceci :

J’ai une liste comme suit

liste=['ddddd','ggggg','kkkkk','kkkkk','llll','llll','llll','hhh','mmm','mmm','mmm']

et je voudrais avoir une autre liste comme suit :

autreliste==['kkkkk','kkkkk','llll','llll','llll','mmm','mmm','mmm'] a partir 
de liste



'lut

Tiens ça me fait vaguement penser à la discussion qu'il y avait concernant le word-counting :)

Perso, j'utiliserais le module itertools et sa méthode groupby (http://docs.python.org/library/itertools.html#itertools.groupby)

Avec itertools.groupby tu as un "iterable" pour chaque objet "identique"

liste = ['ddddd','ggggg','kkkkk','kkkkk','llll','llll','llll','hhh','mmm','mmm','mmm']

tmp = [list(g) for k, g in itertools.groupby(liste)]

Là tu as les objets groupés, et tu veux juste récupérer ceux qui ont une occurence >=2

donc bar = [i for i in tmp if len(i)>1]

et puis tu merge pour avoir le tout en une seule liste:
foo=[]
for i in bar:
  for j in i:
    foo.append(j)

--
Thomas, qui pense sérieusement à ne plus utiliser foo/bar




--
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

Répondre à