Aplatir une liste de listes selon une condition
Résolu
sara91h
Messages postés
2
Statut
Membre
-
sara91h Messages postés 2 Statut Membre -
sara91h Messages postés 2 Statut Membre -
Bonjour,
Je débute en Python et je n'arrive pas à réaliser l'opération suivante pour aplatir une liste des listes :
Exemple:
Si
L = [ [ [X1] , [1,2,3] ],
[ [X1] , [1,1,2] ],
[ [X1], [1,1,1] ],
[ [X2], [1,1,2] ],
[ [X2], [2,1,3] ],
[ [X3], [2,2,2] ] ]
J'aimerai avoir la résultat suivante :
L = [ [ [X1], [1,2,3], [1,1,2], [1,1,1] ],
[ [X2], [1,1,2], [2,1,3] ],
[ [X3], [2,2,2] ] ]
c'est à dire regrouper les élements de X1 ensemble, X2 ensemble, X3 aussi dans une même sous liste.
Je vous remercie par avance
Je débute en Python et je n'arrive pas à réaliser l'opération suivante pour aplatir une liste des listes :
Exemple:
Si
L = [ [ [X1] , [1,2,3] ],
[ [X1] , [1,1,2] ],
[ [X1], [1,1,1] ],
[ [X2], [1,1,2] ],
[ [X2], [2,1,3] ],
[ [X3], [2,2,2] ] ]
J'aimerai avoir la résultat suivante :
L = [ [ [X1], [1,2,3], [1,1,2], [1,1,1] ],
[ [X2], [1,1,2], [2,1,3] ],
[ [X3], [2,2,2] ] ]
c'est à dire regrouper les élements de X1 ensemble, X2 ensemble, X3 aussi dans une même sous liste.
Je vous remercie par avance
A voir également:
- Aplatir une liste de listes selon une condition
- Liste déroulante excel - Guide
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
- Excel cellule couleur si condition texte - Guide
- Site dangereux liste - Guide
3 réponses
Bonjour, essaye :
# a ajuster en fonction des besoins
liste_indices = [["X1"],["X2"],["X3"]]
liste_indices_traites = []
liste_temp = []
liste_fin = []
for i in liste:
if (i[0] in liste_indices) and (i[0] not in liste_indices_traites):
liste_indices_traites.append(i[0])
liste_fin.append(liste_temp)
liste_temp = [i[0],i[1]]
else:
liste_temp = liste_temp + [i[1]]
liste_fin.append(liste_temp)
del liste_fin[0]