ホームページ >バックエンド開発 >Python チュートリアル >Python リストをローテーションするための連結よりも効率的な方法はありますか?

Python リストをローテーションするための連結よりも効率的な方法はありますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-16 17:30:12906ブラウズ

Is There a More Efficient Way to Rotate Python Lists Than Concatenation?

Python リストの効率的な回転

リストを回転するには、その要素を指定された位置数だけ左または右にシフトする必要があります。提供されたコードに示されているように、一般的なアプローチは、元のリストの必要な部分を連結することです。しかし、より効率的な方法はありますか?

Collections.deque を利用する

Collections.deque は、両端からの要素の追加と削除を効率的に行うように設計されており、最適化されたリストローテーションのソリューション。組み込みのrotate() メソッドにより、この操作が簡素化されます。

元のリストを両端キューに変換することで、rotate() メソッドを利用して効率的な回転を実行できます。例:

from collections import deque
l = deque([1, 2, 3, 4])
l.rotate(1)  # rotate one position to the right
print(l)  # deque([2, 3, 4, 1])

さらに、負の値を指定してrotate() メソッドを呼び出して要素を左にシフトできます。

l.rotate(-1)  # rotate one position to the left
print(l)  # deque([1, 2, 3, 4])

collections.deque を使用すると、簡単で簡単なPython でリストをローテーションするための効率的なメカニズム。

以上がPython リストをローテーションするための連結よりも効率的な方法はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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