logo

Comment trier un tuple en Python

Les tuples sont un type de type de données d'une variable qui nous permet de stocker plusieurs objets au même endroit. Un tuple est une collection d’éléments ordonnée et immuable (nous ne pouvons pas mettre à jour les éléments d’un tuple). Il existe 4 structures de données Python intégrées pour stocker les éléments, l'une d'elles est un tuple et les autres sont une liste, un dictionnaire et un ensemble, chacune avec son propre ensemble de propriétés et son utilisation. Ils sont écrits entre parenthèses.

Trier un tuple en Python

Utiliser sort()

La méthode sort() est souvent utilisée pour trier les éléments d'une liste par ordre croissant, le premier élément étant trié par défaut. Nous pouvons trier un tuple en le convertissant d'abord en liste, puis en appliquant cette fonction. Cette fonction trie la liste sur place et renvoie Aucun.

Saisir

 tuple_ = ('Itika', 'Arshia', 'Peter', 'Parker') list(tuple_).sort() print(tuple_) print(type(tuple_)) 

Sortir:

 ('Itika', 'Arshia', 'Peter', 'Parker') 

Utilisation de sorted()

En Python, utilisez la fonction intégrée sorted() pour trier un tuple. Le tuple doit être passé en argument à la fonction sorted(). Les éléments du tuple sont triés (par défaut) par ordre croissant dans la liste renvoyée par la fonction. Nous pouvons utiliser un tuple pour convertir ce type de données de liste en tuple ().

Le paramètre reverse de la fonction sorted() peut également spécifier l'ordre de tri. L'ordre croissant est l'ordre de tri par défaut. Les éléments sont triés par ordre décroissant lorsque reverse=True est défini. Nous pouvons également spécifier une fonction clé dont les valeurs renvoyées sont utilisées pour trier les éléments. Nous prenons un tuple, tuple_, ayant des valeurs entières, et le trions par ordre croissant dans le programme suivant.

Saisir

 tuple_ = (5, 2, 24, 3, 1, 6, 7) sorted_ = tuple(sorted(tuple_)) print('Sorted Tuple :', sorted_) print(type(sorted_)) 

Sortir:

 Sorted Tuple : (1, 2, 3, 5, 6, 7, 24) 

Nous trions maintenant le tuple par ordre décroissant en utilisant la même fonction. Passez reverse=True à la fonction sorted() pour trier le tuple par ordre décroissant.

Saisir

 tuple_ = (5, 2, 24, 3, 1, 6, 7) sorted_ = tuple(sorted(tuple_, reverse=True)) print('Sorted Tuple :', sorted_) print(type(sorted_)) 

Sortir:

 Sorted Tuple : (24, 7, 6, 5, 3, 2, 1) 

Tri d'un tuple en fonction d'une fonction clé

Une clé est une fonction qui prend une valeur et renvoie une valeur. Pour chacun des éléments du tuple, cette fonction clé est appliquée et la valeur renvoyée est utilisée à des fins de comparaison pour trier les éléments. Dans le programme suivant, nous trions un tuple de chaînes en fonction de la longueur des chaînes. Dans ce cas, nous pouvons utiliser la fonction intégrée len() comme clé.

Saisir

 tuple_ = ('abhd', 'sbchcwsc', 'sjs', 'sxshs') sorted_ = tuple(sorted(tuple_, key=len)) print('Sorted Tuple :', sorted_) print(type(sorted_)) 

Sortir:

 Sorted Tuple : ('sjs', 'abhd', 'sxshs', 'sbchcwsc') 

Tri de la liste des tuples

Utilisation de sorted()

Voyons comment trier une liste en Python à l'aide d'un tuple. Considérons le scénario suivant : nous souhaitons trier la liste des tuples. Nous devons trier les tuples en fonction de la clé qui nous est donnée. Cela peut être accompli en utilisant la fonction sorted(), qui trie les éléments à l'aide d'une clé et stocke l'index de clé pour trier les tuples donnés. L'exécution Python de cette approche est la suivante :

Saisir

 # Sorting list of tuples according to a key def middle(n): return n[1] # function to sort the tuple def sort(list_of_tuples): return sorted(list_of_tuples, key = middle) # driver code list_ = [(34, 21, 56), (24, 12, 32), (42, 34, 42), (27, 11, 32)] print('Sorted list of Tuples:'), print(sort(list_)) 

Sortir:

 Sorted list of Tuples: [(27, 11, 32), (24, 12, 32), (34, 21, 56), (42, 34, 42)] 

Utiliser le tri à bulles

Le tri à bulles n'est qu'un algorithme de tri permettant de trier une liste d'un nombre quelconque d'éléments. Si les éléments adjacents dans une liste donnée sont dans le mauvais ordre, il les échange. Il répète ensuite ce processus jusqu'à ce que tous les éléments aient été triés.

tableau de retour Java

Dans cet exemple, nous utiliserons l'algorithme de tri à bulles pour trier une liste de tuples.

Saisir

 roll = [('Arshia', 26), ('Itika', 53), ('Peter', 82), ('Parker', 74), ('MJ', 45)] first = 0 last = len(roll) for k in range(0, last): for l in range(0, last-k-1): if (roll[l][first] > roll[l + 1][first]): new_item = roll[l] roll[l]= roll[l + 1] roll[l + 1]= new_item print(roll) 

Sortir:

 [('Arshia', 26), ('Itika', 53), ('MJ', 45), ('Parker', 74), ('Peter', 82)]