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 :

comparer les elements d'une même liste de liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 20
    Par défaut comparer les elements d'une même liste de liste
    Bonjout

    J'ai besoin d'aide

    Je dois comparer les éléments d'une liste de liste en même temps .
    J'ai un fichier sous cette forme et je dois comparer les éléments d'une même liste. sachant que les listes et les sous listes non pas la même longueur:

    [[1, A, c, 11] [D ,C, F ,V] [1,D,E,R] [1,E,2,51] [ML,E]]
    [[1, A, j, 11] [D , F ,V] [ [1,E, 51] [E]]
    [[1] [D ,C, F ,V] [1,D,E,R]


    Je vous remercie

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Salut,

    Qu'entend tu par "comparer"? Est-ce que:

    [4,a,c] = [a,4,c] ?
    [4,a,c] = [4,a] ?
    [4,a,c] = [4,a,c,d]?
    ...
    Ma question peut te sembler étrange, mais une comparaison c'est en quelque sorte une loi. Tu seras d'accord que 1>0, qu'éventuellement b>a (ordre alphabétique), mais c'est pas toujours aussi "évident" (cf exemples donnés ci-dessus). Les lois de comparaisons sont définissables.

    Sinon, lorsque tu écris ceci:
    [[1, A, c, 11] [D ,C, F ,V] [1,D,E,R] [1,E,2,51] [ML,E]]
    [[1, A, j, 11] [D , F ,V] [ [1,E, 51] [E]]
    [[1] [D ,C, F ,V] [1,D,E,R]
    Tu cherches à comparer quoi excatement?

    Ju

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 20
    Par défaut Merci pour ta réponse rapide
    C'est pas faux
    Une bonne remarque
    en faite je cherche les intersection entre les listes ( exemple :[1, A, c, a,11] inter [D ,C, a,F ,V] [1,D,a,E,R] inter [a,1,E,2,51 ]inter [a,ML,E])

    tout en ayant accès à la position des éléments en commun dans chaque liste.
    dans le cas de l'exemple ça sera :
    inter= a
    position : 3, 2,2,0,0

    Je te remercie

  4. #4
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    OK,

    Il doit certainement y avoir mieux comme méthode, mais voici comment je m'y prendrais sur une version simplifiée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # deux listes parmi celles que tu as:
    l1 = ['1', 'A', 'c', 'a','11']
    l2 = ['D' ,'C', 'a','F' ,'V']
     
    # On créé un set de la première liste car set possède une méthode intersection
    set_l = set(l1)
     
    # Les éléments del'intersection sont sauvés dans matches (un set)
    matches = set_l.intersection(l2)
     
    # On parcours les élements de l'intersection
    for elem in matches:
        print 'Element %s trouve aux positions %i et %i' % (l1.index(elem),l2.index(elem))

    Voilà.

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 20
    Par défaut Merci mais ca me convient pas
    Je te remercie
    J'avais pensé à l'intersection de sets mais je dois trouver l'intersection entre toutes les listes d'une grande liste ( plus que deux sets). En plus j'ai les différentes grandes listes qui n'ont pas la même taille:
    [[1, A, c, 11] [D ,C, F ,V] [1,D,E,R] [1,E,2,51] [ML,E]] : taille =4
    [[1, A, j, 11] [D , F ,V] [ [1,E, 51] [E]] : taille =3
    [[1] [D ,C, F ,V] [1,D,E,R] : taille =2

    J'essaie de trouver une solution depuis hier, je vais m'arracher les cheveux.

    Merci

    bonne journée

  6. #6
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    hmmm. Imaginons ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l = [['1','A','c', '11'], ['D' ,'C', 'F' ,'V'], ['1','D','E','R'], ['1','E','2','51'], ['ML','E']]
    La liste ci-dessus est constituée de plusieurs listes de tailles différentes. Tu peux transformer ceci en liste de sets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set_l = [set(elem) for elem in l]
    Puis il suffit de faire l'intersection de tous les sets comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    matches = set.intersection(*set_l)
    Dans le cas présent il n'y a pas d'élément retourné. Tu peux appliquer ce principe aux autres listes, en plusieurs étapes si nécessaire.

    ju

Discussions similaires

  1. Comparer et modifier les éléments d'une même liste
    Par Opsse dans le forum Général Java
    Réponses: 7
    Dernier message: 22/06/2015, 15h20
  2. Comparer les attributs d'une même table
    Par franxaleader dans le forum SQL
    Réponses: 1
    Dernier message: 26/05/2011, 11h01
  3. Requete sur les elements d'une même table
    Par jean-marieb dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/10/2007, 14h40
  4. [CSS] largeur fixe pour les elements d'une liste
    Par arnolpourri dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 24/05/2006, 13h25
  5. Rechercher les element d'une liste dans une autre liste
    Par fessebleu dans le forum Langage
    Réponses: 30
    Dernier message: 24/04/2006, 21h23

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