Maison >développement back-end >Tutoriel Python >Comment trier efficacement les tuples Python par leur deuxième élément entier ?

Comment trier efficacement les tuples Python par leur deuxième élément entier ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-05 08:44:17478parcourir

How to Efficiently Sort Python Tuples by Their Integer Second Element?

Tri des tuples Python par deuxième élément (valeur entière)

Lorsque vous travaillez avec des listes de tuples contenant à la fois des éléments de chaîne et des éléments entiers, les trier efficacement en fonction des valeurs entières peut être essentiel. Cet article explore une solution pour cette tâche de programmation courante.

Pour trier une liste de tuples en fonction de leur deuxième élément, qui est un entier, nous pouvons utiliser la fonction sorted() en Python. Cette fonction permet de personnaliser les critères de tri à l'aide de l'argument mot-clé clé.

Utilisation de l'argument clé

L'argument clé prend une fonction en entrée, qui détermine comment les tuples doivent être comparés. Dans ce cas, nous souhaitons les comparer en fonction de leur deuxième élément. Nous pouvons définir une fonction personnalisée en utilisant la syntaxe lambda comme suit :

lambda x: x[1]

Cette fonction prend un seul tuple en entrée et renvoie son deuxième élément.

Trier la liste des tuples

Maintenant, nous pouvons utiliser l'argument key dans sorted() pour spécifier cette fonction personnalisée comme règle de tri :

sorted([('abc', 121), ('abc', 231), ('abc', 148), ('abc', 221)], key=lambda x: x[1])

Cela renverra un nouveau liste contenant les tuples triés par ordre croissant par leur deuxième élément :

[('abc', 121), ('abc', 148), ('abc', 221), ('abc', 231)]

Optimisation du tri avec Operator.itemgetter

Pour des performances optimales, pensez à utiliser Operator.itemgetter(1) au lieu de lambda x : x[1]. Operator.itemgetter est une fonction intégrée explicitement conçue pour extraire l'élément spécifié d'une structure de données, ce qui peut améliorer l'efficacité.

from operator import itemgetter
sorted([('abc', 121), ('abc', 231), ('abc', 148), ('abc', 221)], key=itemgetter(1))

Cette approche permet d'obtenir le même résultat que l'utilisation de la fonction lambda mais peut être légèrement plus rapide dans certains cas.

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