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
| def indicedansliste(elem, lliste, indcol):
"""renvoie l'indice i (1er trouvé) de lliste si lliste[i][indcol]==elem
si non trouvé, renvoie -1.
"""
for i, x in enumerate(lliste):
if elem == x[indcol]:
return i
return -1
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]]
results = []
for sliste in liste_1:
ind2 = indicedansliste(sliste[0], liste_2, 0)
if ind2 == -1:
continue # le nom n'existe pas dans cette liste
ind3 = indicedansliste(sliste[0], liste_3, 0)
if ind3 == -1:
continue # le nom n'existe pas dans cette liste
# ici, on a trouvé un nom commun aux 3 listes
results.append(sliste)
results.append(liste_2[ind2])
results.append(liste_3[ind3])
print(results)
[['baba', 1, 25.2, 36.4], ['baba', 9, 15.2, 63.8], ['baba', 12, 58.2, 326.4], ['touti', 63, 25.8, 36.9], ['touti', 653, 75.8, 636.9], ['touti', 683, 2.8, 4.9], ['quanti', 27, 58.4, 12.9], ['quanti', 287, 588.4, 126.9], ['quanti', 7, 5.4, 2.9]] |
Partager