Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
905 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  [python] : trier une liste sur deux criètes (histoire de ".")

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[python] : trier une liste sur deux criètes (histoire de ".")

n°2143580
gug42
Posté le 24-05-2012 à 17:58:44  profilanswer
 

Bonjour à tous,
 
Je commence le python et la je suis confronté à un besoin surlequel j'aimerais bien votre avis ;)  
 
J'ai une liste qui se présente ainsi :
["tata.foobar", "toto.barfoo", "titi.foobar", "turl.barfoo", "tik.bar"]
 
 
Et j'aimerais pouvoir :
- Trier par l'information après le point
- Puis trier par l'information avant le point
 
J'ai vu que sorted() propose key=  mais je n'ai pas réussi à l'utiliser et je m'interroge si ca correspond au besoin ...
 
Devrais je décomposer ma liste en une liste de liste ?  
Par exemple : ( ("tata", foobar), ("toto","barfoo" ), ("titi","foobar" ), ("turl","barfoo" ), ("tik","bar" )
 
 
Bref je m'interroge sur la technique la plus élégante et "in the python way"
 
 
Merci d'avance !


Message édité par gug42 le 24-05-2012 à 17:59:00
mood
Publicité
Posté le 24-05-2012 à 17:58:44  profilanswer
 

n°2143811
eyquem
Posté le 27-05-2012 à 00:36:38  profilanswer
 

Code :
  1. li = ["tata.foobar", "toto.barfoo", "titi.foobar", "tatau.foobar",
  2.       "turl.barfoo", "tik.bar", "tatauz.foobar", "titii.foobar",
  3.       "taka.bar", "tat.barfoo", "tak.bar"]
  4. li.sort(key = lambda x: x.split('.')[:-1])
  5. # ou bien
  6. from operator import itemgetter
  7. li.sort(key = lambda x: itemgetter(1,0)(x.split('.')))


 
la liste triée est :
 

Code :
  1. ['tak.bar', 'taka.bar', 'tik.bar', 'tat.barfoo', 'toto.barfoo', 'turl.barfoo', 'tata.foobar', 'tatau.foobar', 'tatauz.foobar', 'titi.foobar', 'titii.foobar']

n°2143920
gug42
Posté le 29-05-2012 à 09:31:08  profilanswer
 

Merci !
 
Grâce à ton exemple je comprends un peu mieux les fonctions "lambda" :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  [python] : trier une liste sur deux criètes (histoire de ".")

 

Sujets relatifs
Trier de la data: appel à un pro[ACCESS 2007] mise à jour de formulaire basé sur une liste déroulante
Traitement de fichier avec python !Gestion de liste de serveurs
[PYTHON] Action sur les variablesLancer sh pour liste de dossier
Salut Pythoncomment utiliser deux module liste simple avec une autre application
Liste déroulante mysql (affichage + insertion)pb liste chainée et lecture de fichier C
Plus de sujets relatifs à : [python] : trier une liste sur deux criètes (histoire de ".")


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR