Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/03/2014, à 21:05

Hizoka

[resolu] [python3] Doublon dans des sous listes

Bonsoir,

je cherche un moyen de rechercher des doublons non pas dans une liste mais dans des sous listes !

je vous montre un exemple :

for element in liste:
  print(element)

=> [002, "aaaaaa", "blabla"]
=> [092, "bbbbb", "blabla"]
=> [925, "ccccc", "blabla"]
=> [002, "ddddd", "blabla"]
=> [925, "eeeee", "blabla"]

Je veux savoir si le 1er element (et uniquement le 1er element) de chaque sous liste se retrouve dans une autre liste :
Dans le cas présent, on retrouve 2 fois 002 en 1er element dans 2 sous listes, tout comme 925.

Dans l'idée, si j'en trouve 2 pareil, j'arrete les recherches pour appliquer des modifications...

Si quelqu'un a une idée pour faire ça simplement...

merci et bonne soirée smile

Donc :
Ca c'est bon :

=> [002, "aaaaaa", "blabla"]
=> [092, "bbbbb", 002]
=> [925, 002, 092]

Dernière modification par Hizoka (Le 16/03/2014, à 22:06)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#2 Le 16/03/2014, à 21:30

pingouinux

Re : [resolu] [python3] Doublon dans des sous listes

Bonsoir,
Voici une suggestion :

list_elem1=set()

for element in liste:
  print(element)
  elem1=element[0]
  if elem1 in list_elem1 : print("Doublon"); break
  list_elem1.add(elem1)

Hors ligne

#3 Le 16/03/2014, à 22:05

Hizoka

Re : [resolu] [python3] Doublon dans des sous listes

merci, c'est à peu pres ce que j'avais fait.

j'ai pas utilisé set mais sinon c'était la même idée.

je me disais qu'il y avait peut etre plus simple smile

merci.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#4 Le 16/03/2014, à 23:31

psyphi

Re : [resolu] [python3] Doublon dans des sous listes

En utilisant les compréhensions de liste.
Tu mets le code suivant dans une fonction en remplace le break par un "return liste[:doublon[1]]"

liste = [["002", "aaaaaa", "blabla"], ["092", "bbbbb", "blabla"], ["925", "ccccc", "blabla"], ["002", "ddddd", "blabla"], ["925", "eeeee", "blabla"]]
colonne = [x[0] for x in liste]
for el in colonne:
    doublon = [index for index, element in enumerate(colonne) if element ==  el]
    if len(doublon) > 1:
        print(liste[:doublon[1]])
        break

Hors ligne

#5 Le 17/03/2014, à 15:57

Hizoka

Re : [resolu] [python3] Doublon dans des sous listes

en effet mais c'est moins lisible je trouve.

merci pour l'idée wink


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#6 Le 17/03/2014, à 19:59

pingouinux

Re : [resolu] [python3] Doublon dans des sous listes

Pour les longues listes (plus de 1000 éléments) dont les doublons sont à la fin, le script en #4 prend beaucoup plus de temps que celui en #2.

Hors ligne