以下は Python シーケンスの循環シフトの 3 つの方法を推奨するものであり、参考になると思います。
最初の方法: 特徴は、直接的でわかりやすいことです。欠点は、遅く、循環左シフトしか実現できないことです。
def demo(lst, k): temp = lst[:] for i in range(k): temp.append(temp.pop(0)) return temp
2 番目の方法: は、高速で適応的な循環左シフト (k>0) と右シフト (k<0) を特徴としています。欠点は、アルゴリズムが含まれることです。わかりやすい。
def demo(lst, k): x = lst[:k] x.reverse() y = lst[k:] y.reverse() r = x+y return list(reversed(r))
最もPython的な究極の方法: スライスを使用します。これはシンプルで理解しやすく、最も速く、循環左シフト(k>0)と右シフト(k<0)を実現できます。同時に。
def demo(lst, k): return lst[k:] + lst[:k]
関連する推奨事項:
Pythonで任意の範囲および任意の精度で乱数を生成する方法
selectを使用してソケット全二重非同期通信機能を実装するPythonネットワークプログラミング
以上がPython シーケンスを循環シフトする 3 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。