Pythonでリストを回転(シャッフル)させる4つの簡単な方法

スポンサーリンク

Hey Folks! この記事では、Pythonプログラミング言語を使用して、リストを回転させる方法を学びます。

リストの回転は、プログラマーにとって便利なシンプルな方法です。

回転を実現するための様々なオプションについて見ていきましょう。


スポンサーリンク

Python でリストを回転させる

それでは、Pythonでリストを回転させる方法を理解しましょう。

以下では、複数の異なる方法について見ていきます。

方法1:スライス操作

リストを回転させるもう一つの方法は、スライスすることです。

これには len() メソッドが使われます。

以下の例では、リストがスライスされています。

このとき、n_splitsの値は1であり、スライスの数を示しています。

その結果、リストが同じように循環するようになります。

1
2
3
4
5
6
7
8
# Define the list
list_1 = [1,2,3,4,5]
print("Original list:", list_1)
# Set the number of splits
n_splits = 1
# Rotate The List
list_1 = (list_1[len(list_1) - n_splits:len(list_1)] + list_1[0:len(list_1) - n_splits])
print("Rotated list:", list_1)
Original list: [1, 2, 3, 4, 5]
Rotated list: [5, 1, 2, 3, 4]

方法2:トラバース操作

Pythonでリストを回転させる最も簡単な方法です。

その名の通り、リストを1つずつ見て回ります。

そして、その要素が適切な位置に配置されます。

この方法は、以下の例で示されています。

この例では、リストを整数n(1)で回転させます。

1
2
3
4
5
6
7
8
9
10
11
12
def ROTATE (lists, n):
    output_list = []
    x= len(lists)
    for item in range(x - n, x):
        output_list.append(lists[item])       
    for item in range(0, x - n): 
        output_list.append(lists[item])
    return output_list
rotate_num = 1
list_1 = [1, 2, 3, 4, 5]
print("Original List:", list_1)
print("Rotated list: ",ROTATE(list_1, rotate_num))
Original List: [1, 2, 3, 4, 5]
Rotated list:  [5, 1, 2, 3, 4]

方法3:リスト内包

この方法では,リストの回転後に各要素に新しいインデックスを割り当てることで,リストのインデックスを変更します.以下の例では、リストを1回回転させ、新しいインデックス値を割り当てている。

1
2
3
4
list_1 = [1, 2, 3, 4, 5]
print ("Original List : " + str(list_1))
list_1 = [list_1[(i + 4) % len(list_1)] for i, x in enumerate(list_1)]
print ("Rotated list : " + str(list_1))
Original List : [1, 2, 3, 4, 5]
Rotated list : [5, 1, 2, 3, 4]

方法4: collections モジュールを使用する

Python には collection モジュールがあり、その中に deque クラスがあります。

このクラスは rotate() メソッドを含んでいる。

以下の例では、ビルトイン関数 rotate() を利用した。

1
2
3
4
5
6
7
from collections import deque
list_1 = [1, 2, 3, 4, 5
print ("Original List : " + str(list_1))
list_1 = deque(list_1)
list_1.rotate(-4)
list_1 = list(list_1)
print ("Rotated List: " + str(list_1))
Original List : [1, 2, 3, 4, 5]
Rotated List: [5, 1, 2, 3, 4]

まとめ

複数のメソッドを使用してリストに対して回転を実行する方法を学びました。

このチュートリアルはいかがでしたか?いずれにせよ、以下のチュートリアルをご覧になることをお勧めします。

  1. Pythonで辞書をリストに変換する5つの簡単な方法
  2. Pythonでリストをデータフレームに変換する方法は?
  3. どのようにPythonでリストを辞書に変換するのですか?
  4. Pythonのリストを印刷する3つの簡単な方法

お時間を割いていただき、ありがとうございました! 何か新しいことを学べたでしょうか!


タイトルとURLをコピーしました