Swisslinux.org

− The GNU/Linux crossroads in Switzerland −

 

Language

 

The Forum

You are not logged in.

#1 24 Jul 2010 00:55:20

fred1599
Affranchi(e)
 
Registered: 24 Jul 2010
Posts: 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

Last edited by fred1599 (24 Jul 2010 11:44:08)

Offline

 

#2 24 Jul 2010 11:44:33

BOFH
Admin
From: Ecublens, VD
Registered: 03 Feb 2005
Posts: 862
Website

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.

Offline

 

#3 24 Jul 2010 14:18:24

fred1599
Affranchi(e)
 
Registered: 24 Jul 2010
Posts: 2

Re: [Python] Itertools

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

Je vais voir pour groupby

Offline

 

Board footer

Powered by FluxBB