Python シーケンスを循環シフトする 3 つの方法

不言
リリース: 2018-04-09 15:03:13
オリジナル
4674 人が閲覧しました

以下は 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!