Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

#1 24 Jul 2010 00:55:20

fred1599
Affranchi(e)
 
Date d'inscription: 24 Jul 2010
Messages: 2

[Python] Itertools

Bonsoir,

Je recherche en fait une méthode du module itertools me permettant de faire la même chose que permutations, mais sans doublons. Existe-t-elle? Sinon si une solution, merci par avance.

Edit: Je rajoute un exemple de code de ce que je veux, mais en utilisant itertools sans ma solution de tri de doublons.

>>> from itertools import permutations as p
>>> liste=[]
>>> for i in p('ZOZOR', 5):
        if ''.join(i) not in liste:
        liste.append(''.join(i))

       
>>> for j in liste:
        print j

Et il n'y a pas un système permettant de rentrer du code python?

Encore merci

Dernière modification par fred1599 (24 Jul 2010 11:44:08)

Hors ligne

 

#2 24 Jul 2010 11:44:33

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: [Python] Itertools

Sans doublons ? permutations() ne produit pas de doublons.

Si tu veux éliminer les tuples identiques à l'ordre près, c'est combinations() qu'il te faut.

EDIT: Ah, il fallait préciser que l'entrée possède des éléments à double.

Insère le résultat dans un Set, c'est probablement le plus simple... si tu veux rester avec un iterateur tu peux certainement aussi utiliser groupBy.

Hors ligne

 

#3 24 Jul 2010 14:18:24

fred1599
Affranchi(e)
 
Date d'inscription: 24 Jul 2010
Messages: 2

Re: [Python] Itertools

Merci de tes réponses, en effet avec set() ça marche nickel.

Je vais voir pour groupby

Hors ligne

 

Pied de page des forums

Powered by FluxBB