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 tableau à deux dimensions


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 35
    Points : 99
    Points
    99
    Par défaut Trier tableau à deux dimensions
    Bonjour,

    Je cherche à trier un tableau à deux dimensions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    a = []
    a.append(['1 and abc', 'tata'])
    a.append(['2 and def', 'tutu'])
    a.append(['3 and ghi', 'titi'])
    a.append(['4 and jkl', 'tutu'])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> a
    [['1 and abc', 'tata'],
    ['2 and def', 'tutu'],
    ['3 and ghi', 'titi'],
    ['4 and jkl', 'tutu']]
    Seulement je cherche à supprimer les doublons contenue dans la deuxième colonne en conservant la dernière occurence et obtenir ce résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> a
    [['1 and abc', 'tata'],
    ['3 and ghi', 'titi'],
    ['4 and jkl', 'tutu']]
    Je sais trier les doublons d'une liste à une dimension mais là je bloque .
    Toutes mes tentatives se soldent par un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TypeError: unhashable type: 'list'


    Des idées ?


    Merci d'avance.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 301
    Points : 6 781
    Points
    6 781
    Par défaut
    Salut,

    Regarde ici:
    http://www.developpez.net/forums/d14...sion-doublons/

    Plein de réponses pour la même question. ... et le même questionneur.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 35
    Points : 99
    Points
    99
    Par défaut
    Citation Envoyé par Thyxx Voir le message
    Je sais trier les doublons d'une liste à une dimension mais là je bloque .
    Citation Envoyé par VinsS Voir le message
    Merci.
    Mais si je pose la question dans un post différent c'est parce que je n'ai pas réussi à utiliser la méthode de tri d'une liste standard à une liste à plusieurs colonnes .

    Je pensais que l'approche était différente...



    EDIT: Finalement c'est bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result = OrderedDict([(line[1].split()[-1],line) for line in a]).values()

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 893
    Points : 7 249
    Points
    7 249
    Par défaut
    Toujours le même principe avec la mémoire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    a = []
    a.append(['1 and abc', 'tata'])
    a.append(['2 and def', 'tutu'])
    a.append(['3 and ghi', 'titi'])
    a.append(['4 and jkl', 'tutu'])
     
    memory = []
    result = []
     
    for liste in a[::-1]:
        i, j = liste
        if j not in memory:
            result.append((i, j))
            memory.append(j)
     
    print(result[::-1])

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

Discussions similaires

  1. Syntaxe pour trier un tableau à deux dimensions
    Par Lekno dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 15/10/2013, 15h37
  2. Trier un tableau à deux dimensions
    Par ghost emperor dans le forum VB.NET
    Réponses: 4
    Dernier message: 24/04/2008, 15h51
  3. [Prototype] Trier un tableau à deux dimensions par colonnes
    Par G.D.V.L. dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 12/06/2007, 12h20
  4. [Tableaux] Trier tableau deux dimensions
    Par dondano dans le forum Langage
    Réponses: 1
    Dernier message: 25/10/2006, 20h02
  5. Passage d'un tableau à deux dimensions
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 20/10/2003, 14h50

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