Comment trier une liste en fonction de la valeur d'une autre liste en Python ?

王林
Libérer: 2023-09-12 11:09:08
avant
1463 Les gens l'ont consulté

Comment trier une liste en fonction de la valeur dune autre liste en Python ?

Nous pouvons trier une liste selon les valeurs d'une autre liste en définissant la deuxième liste sur le numéro d'index de la valeur de la première liste dans l'ordre trié.

Trier une liste par valeurs dans une autre liste

Exemple

Dans cet exemple, nous trierons la liste en fonction des valeurs d'une autre liste, c'est-à-dire que les index de la deuxième liste seront dans l'ordre dans lequel ils sont placés dans l'ordre de tri -

# Two Lists
list1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
list2 = [2, 5, 1, 4, 3]

print("List1 = \n",list1)
print("List2 (indexes) = \n",list2)

# Sorting the List1 based on List2
res = [val for (_, val) in sorted(zip(list2, list1), key=lambda x: x[0])]
print("\nSorted List = ",res)
Copier après la connexion

Sortie

List1 = 
 ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
List2 (indexes) = 
 [2, 5, 1, 4, 3]

Sorted List =  ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']
Copier après la connexion

Utilisez un dictionnaire pour trier une liste par valeurs dans une autre liste

Exemple

Dans cet exemple, nous trierons une liste selon la valeur d'une autre liste. Nous ajoutons ces deux listes à un dictionnaire puis les trions en utilisant les valeurs clés et les lambdas du dictionnaire.

# Two Lists
list1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
list2 = [2, 5, 1, 4, 3]

print("List1 = \n",list1)
print("List2 (indexes) = \n",list2)

# Blank dictionary
newDict = {}

# Blank list
outList = []

# Both the lists in our dictionary newDict
newDict = {list1[i]: list2[i] for i in range(len(list2))}

# Sorting using the sorting() based on key and values
# Using lambda as well
s = {k: v for k, v in sorted(newDict.items(), key=lambda item: item[1])}

# Element addition in the list
for i in s.keys():
   outList.append(i)

print("\nSorted List = \n",outList)
Copier après la connexion

Sortie

List1 = 
 ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
List2 (indexes) = 
 [2, 5, 1, 4, 3]

Sorted List = 
['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal