Maison >développement back-end >Tutoriel Python >Comment puis-je trier plusieurs listes en Python tout en conservant l'alignement ?
Lorsque vous travaillez avec plusieurs listes parallèles, il peut être nécessaire de trier une liste tout en conservant l'ordre correspondant des éléments dans les autres listes. Pour y parvenir, nous présentons deux approches classiques.
Cette technique simplifie la tâche grâce à la fonction zip intégrée de Python, qui combine des éléments de plusieurs listes en tuples :
list1 = [3, 2, 4, 1, 1] list2 = ['three', 'two', 'four', 'one', 'one2'] list1, list2 = zip(*sorted(zip(list1, list2)))
Après avoir trié les tuples par le premier élément (liste1), l'ordre est appliqué aux deux listes.
Pour une vitesse accrue, vous pouvez utiliser une approche de tri sur place :
tups = zip(list1, list2) tups.sort() result1, result2 = zip(*tups)
Cette approche surpasse généralement la version sur une ligne pour les petites listes mais devient comparable pour les listes plus grandes grâce aux routines zip optimisées de Python.
list1 = [3, 2, 4, 1, 1] list2 = [num * num for num in list1] result1, result2 = zip(*sorted(zip(list1, list2), key=lambda x: x[0]))
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!