Bonsoir,
Je vous présente mon problème simplifié. Je dispose d'une liste telle que :
Je ne veux récupérer que les éléments dont le premier terme est commun, c'est-à-dire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part [[['baba', 1, 25.2, 36.4], ['chouba', 236, 25.7, 48.6], ['touti', 63, 25.8, 36.9], ['quanti', 27, 58.4, 12.9]], [['baba', 9, 15.2, 63.8], ['touti', 653, 75.8, 636.9], ['quanti', 287, 588.4, 126.9]], [['baba', 12, 58.2, 326.4], ['chouba', 23, 2.8, 4.6], ['loula', 65, 36.1, 2514.3], ['touti', 683, 2.8, 4.9], ['quanti', 7, 5.4, 2.9]]]
J'ai écrit ce petit programme mais cela me semble bien compliqué, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part [[['baba', 1, 25.2, 36.4], ['touti', 63, 25.8, 36.9], ['quanti', 27, 58.4, 12.9]], [['baba', 9, 15.2, 63.8], ['touti', 653, 75.8, 636.9], ['quanti', 287, 588.4, 126.9]], [['baba', 12, 58.2, 326.4], ['touti', 683, 2.8, 4.9], ['quanti', 7, 5.4, 2.9]]]
Si vous avez plus simple (en fait, j'ai 12 listes de 400 et quelques sous-listes)...
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
17
18
19
20
21
22
23
24
25
26
27
28 liste_1 = [["baba",1,25.2,36.4],["chouba",236,25.7,48.6],["touti",63,25.8,36.9],["quanti",27,58.4,12.9]] liste_2 = [["baba",9,15.2,63.8],["touti",653,75.8,636.9],["quanti",287,588.4,126.9]] liste_3 = [["baba",12,58.2,326.4],["chouba",23,2.8,4.6],["loula",65,36.1,2514.3],["touti",683,2.8,4.9],["quanti",7,5.4,2.9]] liste_origine = [] liste_origine.append(liste_1) liste_origine.append(liste_2) liste_origine.append(liste_3) print(liste_origine) prem = [] for k in range(len(liste_origine)): prem.append([]) for i in range(len(liste_origine[k])): if liste_origine[k][i][0] not in prem: prem[k].append(liste_origine[k][i][0]) inter = set(prem[0]).intersection(*prem) print("---------------------------") print(inter) print("---------------------------") liste_defi=[] for k in range(len(liste_origine)): liste_defi.append([]) for i in range(len(liste_origine[k])): if liste_origine[k][i][0] in inter: liste_defi[k].append(liste_origine[k][i]) print(liste_defi)
Partager