Maison  >  Article  >  développement back-end  >  Comment trier une liste en fonction de la valeur d’une autre liste en Python ?

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

王林
王林avant
2023-09-12 11:09:081407parcourir

Comment trier une liste en fonction de la valeur d’une 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)

Sortie

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

Sorted List =  ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']

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)

Sortie

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

Sorted List = 
['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer