IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Trier un fichier a partir d'un indice


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant en propriété intellectuelle
    Inscrit en
    Janvier 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Consultant en propriété intellectuelle
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Par défaut Trier un fichier a partir d'un indice
    Bonjour,

    je rencontre un problème lorsque je veux trier un fichier a partir d'un indice, en fait, le fichier ressemble a cela :

    0 C V abattaient
    0 C V abattais
    0 C V abattait

    ...
    9943 C N zouaves
    9943 B N zouave
    9944 C abat jours
    9944 B abat jour
    ...
    et je voudrais trier les mots mais que les identifiants suivent aussi.

    Pour cela je fais ca :
    dicoNonTrie = open("./Dictionnaire","r")
    dicoTrie = open("./DictionnaireTrier","w")
    liste = dicoNonTrie.readlines()
    for i in liste:
    i = i.split()
    liste.sort(lambda x, y: cmp(x[-1],y[-1]))
    for mot in liste :
    dicoTrie.write(mot)
    dicoTrie.close()
    dicoNonTrie.close()
    Mais je cela me retourne exactement le meme fichier ... Je ne vois absolument pas comment faire...

  2. #2
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Je ne sais pas si j'ai bien compris votre problème, mais chez moi ceci semble marcher (Python 2.4 et +):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    liste = ["0 C V abattaient"
           , "0 C V abattais"
           , "0 C V abattait"
           , "9943 C N zouaves"
           , "9943 B N zouave"
           , "9944 C abat jours"
           , "9944 B abat jour"
           ]
    print sorted(liste, key=lambda x:x.split()[-1])
    Et pour toute version le tri "in place":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste.sort(key=lambda x:x.split()[-1])

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant en propriété intellectuelle
    Inscrit en
    Janvier 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Consultant en propriété intellectuelle
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Par défaut
    merci, ca marche impec

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trier des fichiers à partir d'une variable File[]
    Par spaukensen dans le forum Général Java
    Réponses: 4
    Dernier message: 27/09/2010, 16h43
  2. Réponses: 2
    Dernier message: 27/05/2004, 00h40
  3. Effacer le contenu d'un fichier a partir d'une ligne
    Par localhost dans le forum Linux
    Réponses: 3
    Dernier message: 04/04/2004, 04h47
  4. Réponses: 3
    Dernier message: 24/02/2004, 15h09
  5. Insertion dans un fichier xml à partir d'un xsl
    Par alexandre54 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/03/2003, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo