ホームページ >バックエンド開発 >Python チュートリアル >Python でリストを回転する最も効率的な方法は何ですか?
Python での効率的なリストの回転
リストを回転するときの標準的なアプローチは、目的の回転ポイントでリストをスライスし、リストを再結合することです。結果として得られるセグメント。ただし、より効率的なオプションが利用可能です。
Collections.deque の使用
Python 標準ライブラリは、両端での操作に最適化された collections.deque データ構造を提供します。リストの。これには、リストを効率的に回転するための専用のrotate() メソッドが備わっています。
次のコードを考えてみましょう:
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])
このメソッドは、特に大きなリストの場合、標準のスライス手法に比べてパフォーマンスが大幅に向上します。
回転の使用アルゴリズム
または、リストのローテーションに特化したアルゴリズムが存在します。このようなアルゴリズムの 1 つは 循環回転 です。これには、リストの最初と最後の要素を繰り返し交換することが含まれます。
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
このアルゴリズム定数時間スワップを実行し、小さいリストや回転係数が事前にわかっている場合に適しています。
以上がPython でリストを回転する最も効率的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。