ホームページ >バックエンド開発 >Python チュートリアル >Python でリストを回転する最も効率的な方法は何ですか?

Python でリストを回転する最も効率的な方法は何ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-13 00:04:09784ブラウズ

What's the Most Efficient Way to Rotate a List in 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。