0

From two lists (liste_1 and liste_2) I'd like to get a third list which keeps the contents of liste_1 (which is a little different from liste_2) while taking into account the scheduling of liste_2.

I don't know how to go about it ... if you have solutions to offer me, that would be good. Thanks in advance.

liste_1 = ['1. Niveau de classe, Durée, Titre de la progression, Séquence n° NUM, Incitation', '2. Demande DEMANDE', '3. Consignes', '4. Contraintes', '5. Notions abordées', '6. Entrée(s) principale(s) du programme', '7. Questionnement', '8. Que vont apprendre les élèves', '9. Champ(s) des pratiques plastiques', "10. Question(s) d'enseignement", '11. Vocabulaire', '12. Questions posées aux élèves', "13. Travaux d'artistes (références)", '14. Evaluation', '15. Observations', '16. Prolongements possibles']
    
liste_2 = ['1. Niveau de classe, Durée, Titre de la progression, Séquence n°, Incitation', "13. Travaux d'artistes (références)", '11. Vocabulaire', '2. Demande', '3. Consignes', '4. Contraintes', '5. Notions abordées', '6. Entrée(s) principale(s) du programme', '7. Questionnement', '8. Que vont apprendre les élèves', '9. Champ(s) des pratiques plastiques', "10. Question(s) d'enseignement", '12. Questions posées aux élèves', '14. Evaluation', '15. Observations', '16. Prolongements possibles']
    
### I'd like to obtain as result list_3 from the content of list_1 and list_2 ###
liste_3 = ['1. Niveau de classe, Durée, Titre de la progression, Séquence n° NUM, Incitation', "13. Travaux d'artistes (références)", '11. Vocabulaire', '2. Demande DEMANDE', '3. Consignes', '4. Contraintes', '5. Notions abordées', '6. Entrée(s) principale(s) du programme', '7. Questionnement', '8. Que vont apprendre les élèves', '9. Champ(s) des pratiques plastiques', "10. Question(s) d'enseignement", '12. Questions posées aux élèves', '14. Evaluation', '15. Observations', '16. Prolongements possibles']
Daniel Walker
  • 6,380
  • 5
  • 22
  • 45
ekdmekdm
  • 171
  • 1
  • 9
  • 1
    Could you explain more what you mean by "taking into account the scheduling of liste_2"? It's not clear what you're trying to accomplish. – Daniel Walker Jul 05 '20 at 00:39
  • I think the scheduling means the order of list_2 . @ekdmekdm, is all element of liste_1 present in liste_2 ? – Ibukun Muyide Jul 05 '20 at 00:45
  • I 'd like to keep the order (classification) of the elements of liste_2, i.e.: 1., 13., 11., 2., 3., 4., 5., 6., 7., 8., 9 ., 10., 12., 14., 15., 16. – ekdmekdm Jul 05 '20 at 00:47
  • Does this answer your question? [How to add two lists together, avoid repetitions, and order elements?](https://stackoverflow.com/questions/50749047/how-to-add-two-lists-together-avoid-repetitions-and-order-elements) – Hugo Jul 05 '20 at 00:48
  • @Muyide Ibukun : Not all the elements of list_1 are not exactly the same as those of liste_2, for example in liste_1 it is: '1. Niveau de classe, Durée, Titre de la progression, Séquence n° NUM, Incitation', while in liste_2 it is: '1. Niveau de classe, Durée, Titre de la progression, Séquence n°, Incitation'. – ekdmekdm Jul 05 '20 at 00:57

2 Answers2

1

You can generate an ordering dictionary from liste_2 by taking the value before the first .; this dictionary can then be used to sort liste_1:

liste_2_order = { e.split('.')[0] : i for i, e in enumerate(liste_2) }
liste_1.sort(key = lambda v:liste_2_order[v.split('.')[0]])
print(liste_1)

Output:

[
 '1. Niveau de classe, Durée, Titre de la progression, Séquence n° NUM, Incitation',
 "13. Travaux d'artistes (références)",
 '11. Vocabulaire',
 '2. Demande DEMANDE',
 '3. Consignes',
 '4. Contraintes',
 '5. Notions abordées',
 '6. Entrée(s) principale(s) du programme',
 '7. Questionnement',
 '8. Que vont apprendre les élèves',
 '9. Champ(s) des pratiques plastiques',
 "10. Question(s) d'enseignement",
 '12. Questions posées aux élèves',
 '14. Evaluation',
 '15. Observations',
 '16. Prolongements possibles'
]
Nick
  • 138,499
  • 22
  • 57
  • 95
0

You can also just do:

sorted(list(set(liste_1 + liste_2)))
Hugo
  • 93
  • 1
  • 8