#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
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
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
Mon blog: http://blog.bores.fr
Mon wiki: http://bores.fr/wiki
Mes programmes libres: https://github.com/tbores
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
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