Trier une liste par rapport à une autre

SenLie_ Messages postés 12 Statut Membre -  
 PierrotLeFou -

Bonjour,

Je fais un jeu de pendu avec des listes pour un travail en NSI, et tout marche sauf que j'ai besoin de trier une liste ayant exactement les mêmes éléments qu'une autre pour que la première aient ses éléments dans le même ordre que la seconde

Exemple :

liste1 = [1,5,4,2,3]
liste2 = [5,4,3,2,1]
#Je voudrais que :
liste1 = [5,4,3,2,1]

3 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     

    Bonjour,

    Si :

    ayant exactement les mêmes éléments qu'une autre pour que la première aient ses éléments dans le même ordre que la seconde

    Dans ce cas

    liste1 = [1,5,4,2,3]
    liste2 = [5,4,3,2,1]
    
    liste1 = liste2  // Ta liste 1 aura les mêmes éléments..dans le même ordre que ta liste 2

    0
  2. PierrotLeFou
     

    C'est un genre de index sort?
    https://www.geeksforgeeks.org/python-returning-index-of-a-sorted-list/
    Ça se fait également à la main avec un tri simple qu'on code soi-même (comme le tri par sélection)

    0
  3. PierrotLeFou
     

    Si c'est vraiment ce que tu veux faire, il y a un autre truc:
     
    liste1 = [1, 5, 4, 2, 3]
    liste2 = [5, 4, 3, 2, 1]
    liste1, liste2 = zip(*sorted(zip(liste1, liste2), reverse=True))
    liste1 = list(liste1)
    liste2 = list(liste2)
    print(liste1)
    print(liste2)
     
    [5, 4, 3, 2, 1]
    [4, 3, 1, 2, 5]

    0