Maison > développement back-end > Tutoriel Python > Quel est le moyen le plus efficace de faire pivoter une liste en Python ?

Quel est le moyen le plus efficace de faire pivoter une liste en Python ?

Mary-Kate Olsen
Libérer: 2024-12-13 00:04:09
original
789 Les gens l'ont consulté

What's the Most Efficient Way to Rotate a List in 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])
Copier après la connexion

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

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!

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