Maison  >  Article  >  développement back-end  >  Comment fonctionne la fonction `sorted(key=lambda: ...)` pour trier les listes en Python ?

Comment fonctionne la fonction `sorted(key=lambda: ...)` pour trier les listes en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 09:44:29308parcourir

How does the `sorted(key=lambda: ...)` function work for sorting lists in Python?

Comprendre la syntaxe de sorted(key=lambda: ...)` pour les listes de tri

La fonction sorted() en Python fournit une manière concise de trier une liste. Lors du tri de listes complexes contenant des éléments imbriqués ou des tuples, vous pouvez personnaliser le tri à l'aide de l'argument clé.

Syntaxe de la fonction Lambda

La fonction lambda dans l'argument clé est un fonction anonyme qui spécifie comment dériver le critère de tri pour chaque élément de la liste. Sa syntaxe est :

lambda input_variable(s): expression
  • input_variable(s) : La ou les variables sur lesquelles opérer.
  • expression : Le calcul ou la valeur à renvoyer.

Par exemple :

<code class="python">f = lambda x: x + 1
f(10)  # Returns 11</code>

Fonction clé dans sorted()

Dans le contexte de sorted(), la fonction clé spécifiée par key=lambda est appliqué à chaque élément de la liste et les résultats sont utilisés pour déterminer l'ordre de tri. Les valeurs renvoyées par la fonction lambda agissent comme des valeurs de substitution pour le tri.

Ce mécanisme vous permet de trier la liste d'origine en fonction d'une propriété ou d'une caractéristique spécifique de chaque élément, plutôt que des éléments eux-mêmes. Par exemple, vous pouvez trier une liste de tuples par leur deuxième élément :

<code class="python">mylist = [(3, 5, 8), (6, 2, 8), (2, 9, 4), (6, 8, 5)]
sorted(mylist, key=lambda x: x[1])

# Output: [(6, 2, 8), (3, 5, 8), (6, 8, 5), (2, 9, 4)]
# Sorted by the second element of each tuple</code>

Valeurs booléennes et tri

Lorsque la fonction clé renvoie une valeur booléenne, la le tri est basé sur la véracité de la valeur. Les éléments avec des valeurs vraies sont placés avant ceux avec des valeurs fausses. Cependant, notez que l'ordre d'origine des éléments ayant la même valeur de vérité est conservé :

<code class="python">mylist = [3, 6, 3, 2, 4, 8, 23]
sorted(mylist, key=lambda x: x % 2 == 0)

# Output: [3, 3, 23, 6, 2, 4, 8]
# Odd numbers (False) come before even numbers (True)
# Even numbers remain in their original order</code>

Utilisation de la clé pour les structures de données complexes

La fonction clé peut être utilisé avec des structures de données complexes pour extraire et comparer des attributs spécifiques. Par exemple, considérons une liste de dictionnaires représentant les étudiants :

<code class="python">students = [
    {'name': 'John', 'age': 20},
    {'name': 'Alice', 'age': 22},
    {'name': 'Bob', 'age': 18},
]</code>

Pour trier les étudiants par âge à l'aide de la fonction sorted(), vous pouvez utiliser l'argument clé avec une fonction lambda :

<code class="python">sorted(students, key=lambda x: x['age'])</code>

Cette fonction lambda extrait l'attribut age de chaque dictionnaire et le renvoie, permettant de trier les éléments en fonction de l'âge.

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:
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