Maison >développement back-end >Tutoriel Python >Quel est le moyen le plus efficace de faire pivoter une liste en Python ?
Rotation efficace de liste en Python
Lors de la rotation d'une liste, l'approche standard consiste à découper la liste au point de rotation souhaité et à recombiner les segments résultants. Cependant, il existe des options plus efficaces disponibles.
Utiliser un Collections.deque
La bibliothèque standard Python fournit la structure de données collections.deque, optimisée pour les opérations aux deux extrémités de la liste. Il comporte une méthode rotate() dédiée pour une rotation efficace des listes.
Considérez le code suivant :
from collections import deque items = deque([1, 2, 3]) items.rotate(1) # Rotate the deque to the right by 1 position print(items) # Output: deque([3, 1, 2])
Cette méthode offre des avantages de performances significatifs par rapport à la technique de découpage standard, en particulier pour les listes plus grandes.
Utilisation d'algorithmes de rotation
Alternativement, des algorithmes spécialisés existent pour la rotation des listes. L'un de ces algorithmes est la rotation cyclique, qui consiste à échanger à plusieurs reprises le premier et le dernier élément de la liste.
Voici une implémentation en Python :
def cyclic_rotate(lst, n): """Rotates the list by n positions.""" n = n % len(lst) for i in range(n): lst[0], lst[-1] = lst[-1], lst[0] return lst
Cet algorithme effectue des échanges à temps constant et convient aux listes plus petites ou lorsque le facteur de rotation est connu à l'avance.
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!