Comment trier une liste complexe ?
Résolu/Fermé
Ptiso
Messages postés
1
Date d'inscription
mardi 3 septembre 2013
Statut
Membre
Dernière intervention
3 septembre 2013
-
3 sept. 2013 à 14:17
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 - 3 sept. 2013 à 23:14
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 - 3 sept. 2013 à 23:14
A voir également:
- Comment trier une liste complexe ?
- Liste déroulante excel - Guide
- Excel trier par ordre croissant chiffre - Guide
- Liste déroulante en cascade - Guide
- Comment masquer sa liste d'amis sur facebook mobile - Guide
- Annuaire inversé gratuit liste rouge - Forum Mobile
1 réponse
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
131
Modifié par heyquem le 3/09/2013 à 23:14
Modifié par heyquem le 3/09/2013 à 23:14
Remarquer qu'il y a des chiffres aussi à l'intérieur des chaînes
résultat
import re li = ['666#P-,[-.<.,<]#!]][[>><<..--,,++\n', '6#P<+[.,+.]<>#!]]', '66#P+[<+.<.]<>#!++,,--..<<>>[[]]\n', '111#P><+<,[.+.]#!++,,--..<<>>[[]]\n', '7#P><+[[+..],#!++,,--..<<>>[[]]\n', '6#P<+[.<.-><]73#!]]', '6#P<-[.<.-><]73#!]]', '6#P<-[.<.-><]70#!]]'] print 'li' print '\n'.join(map(repr,li)) print '---------------------' lu = li[:] lu.sort() print 'lu.sort()' print '\n'.join(map(repr,lu)) print '---------------------' def modi(x,r = re.compile('(\d+)')): sp = r.split(x) for i in xrange(len(sp)): try: sp[i] = int(sp[i]) except: pass return sp lu = li[:] print 'lu.sort(key = modi)' lu.sort(key = modi) print '\n'.join(map(repr,lu))
résultat
li '666#P-,[-.<.,<]#!]][[>><<..--,,++\n' '6#P<+[.,+.]<>#!]]' '66#P+[<+.<.]<>#!++,,--..<<>>[[]]\n' '111#P><+<,[.+.]#!++,,--..<<>>[[]]\n' '7#P><+[[+..],#!++,,--..<<>>[[]]\n' '6#P<+[.<.-><]73#!]]' '6#P<-[.<.-><]73#!]]' '6#P<-[.<.-><]70#!]]' --------------------- li.sort() '111#P><+<,[.+.]#!++,,--..<<>>[[]]\n' '6#P<+[.,+.]<>#!]]' '6#P<+[.<.-><]73#!]]' '6#P<-[.<.-><]70#!]]' '6#P<-[.<.-><]73#!]]' '66#P+[<+.<.]<>#!++,,--..<<>>[[]]\n' '666#P-,[-.<.,<]#!]][[>><<..--,,++\n' '7#P><+[[+..],#!++,,--..<<>>[[]]\n' --------------------- li.sort(key = modi) '6#P<+[.,+.]<>#!]]' '6#P<+[.<.-><]73#!]]' '6#P<-[.<.-><]70#!]]' '6#P<-[.<.-><]73#!]]' '7#P><+[[+..],#!++,,--..<<>>[[]]\n' '66#P+[<+.<.]<>#!++,,--..<<>>[[]]\n' '111#P><+<,[.+.]#!++,,--..<<>>[[]]\n' '666#P-,[-.<.,<]#!]][[>><<..--,,++\n'