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

Patricia Arquette
Libérer: 2024-10-26 09:44:29
original
307 Les gens l'ont consulté

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
Copier après la connexion
  • 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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!