【初心者向け】Python 繰り返し処理を理解しよう!

リスト型

リスト型とは

以前、PHPの記事で「配列」を扱いましたが、Pythonのリスト型は配列のようなものです。リスト型にはどんなオブジェクトも組み合わせて入れることができます。

次にリストの例を示します。オブジェクトを[]で囲むとリストになります。オブジェクトが2つ以上ある場合には、カンマで区切ります。

[]
[1]
[“dog”, “fox”, “mouse”]

1つ目が何も入っていない空のリスト、2つ目が数値が1つ入ったリスト、3つ目が文字列が3つ入ったリストになります。

リスト型データの参照

リスト型に入ったそれぞれのデータを参照するには、リストのインデックスを指定します。インデックスは0から始まり、1ずつ増えていきます。次に示すサンプルコードでは、まずanimalsというリストを作成しています。コードの2行目以降では、リストのインデックスを指定して、各要素の内容を表示しています。

6行目のようにインデックスにマイナスの値を指定することもできます。こうすることで、リストの後ろから要素を取得できます。サンプルコードに示したように、[-1]を指定すると、リストの最後の要素を取得できます。

実行結果から意図した通りにリストの要素を取得できていることがわかります。

Pythonコード

In [1]:

animals = [“dog”, “fox”, “mouse”, “rabbit”]
print(animals[0])
print(animals[1])
print(animals[2])
print(animals[3])
print(animals[-1])

実行結果

Jupyter Notebookで実行した結果です。リストの作成と要素の取得を行なっています。
Jupyter Notebookでの実行結果:リスト型データの参照

次のコードに示すように、インデックスの範囲を指定して、リストの一部を取り出すこともできます。1行目の例は、インデックスが1〜2の要素をリストとして取り出しています。

2〜4行目のように、インデックスの範囲を省略して記述することもできます。2行目のように指定した場合には、リストの最初からインデックス1までの要素を取り出します。3行目のように指定した場合には、インデックス1からリストの最後の要素を取り出します。4行目のように指定した場合には、リストの最初から最後の要素までを取り出します。

実行結果から意図した通りにリストの一部を取り出せていることがわかります。

Pythonコード

In [2]:

print(animals[1:3])
print(animals[:2])
print(animals[1:])
print(animals[:])

実行結果

Jupyter Notebookで実行した結果です。インデックスの範囲指定によって、要素を取得しています。
Jupyter Notebookでの実行結果:辞書型データの参照(範囲指定)

その他リストの操作

ここでは、リストの操作をするのに便利なメソッドをいくつか紹介します。

リストに要素を追加

次のサンプルコードに示すように、appendメソッドを使うことで、リストに要素を追加することができます。この例ではリストanimalsの最後に”cat”を追加しています。実行結果からリストの最後に要素を追加できていることがわかります。

Pythonコード

In [3]:

animals.append(“cat”)
print(animals)

実行結果

Jupyter Notebookで実行した結果です。リストの要素の追加を行なっています。
Jupyter Notebookでの実行結果:リスト型の要素の追加

リストの要素数をカウント

リストの要素数を確認したい時には、len関数を使って次のように書きます。この例ではlen関数でリストanimalsの要素数を取得して、変数lengthに格納しています。実行結果から、要素数を正しく取得できていることがわかります。

Pythonコード

In [4]:

length = len(animals)
print(length)

実行結果

Jupyter Notebookで実行した結果です。リストの要素数の確認を行なっています。
Jupyter Notebookでの実行結果:リスト型の要素数の確認

リストの要素を検索

リスト内の要素を検索するには、in演算子を使って次のように書きます。検索した結果、要素が見つかればTrue、見つからなければFalseを返します。この例では、リストanimalsの要素を検索して、”mouse”と”prairie dog”が存在しているか確認しています。実行結果から検索が正しく行われていることがわかります。

Pythonコード

In [5]:

print(“mouse” in animals)
print(“prairie dog” in animals)

実行結果

Jupyter Notebookで実行した結果です。リストの要素の検索を行なっています。
Jupyter Notebookでの実行結果:リスト型の要素の検索

繰り返し処理

繰り返し処理とは

繰り返し処理とは、決まった回数や条件を満たしている間処理を繰り返すというものです。繰り返し処理は、「for文」を使って次のように書きます。繰り返し処理の内容は、条件分岐の記事で紹介したのと同じように、インデントを下げます。

for 繰り返し処理内での変数名 in リストの変数名
    繰り返し処理の内容

for文を使ったサンプルコード

for文を使ったサンプルコードと実行結果を示します。この例では、変数animalにリストanimalsの要素をひとつ格納して、printで内容を表示するという処理が繰り返し行われます。結果として、リストanimalsの要素全てを表示するということになります。for文を使えば、このように、同じような繰り返し処理を簡潔に書くことができます。

実行結果からリストanimalsの内容が正しく表示されていることがわかります。

Pythonコード

In [6]:

for animal in animals:
    print(animal)

実行結果

Jupyter Notebookで実行した結果です。for文を使った繰り返し処理を行なっています。
Jupyter Notebookでの実行結果:for文を使った繰り返し処理

もう少しプログラムらしく

先ほどのfor文のサンプルコードでは、リストの内容を表示するだけでした。ここでは、以前の記事で扱ったif文と組み合わせて、もう少し複雑なコードを書いてみます。リストanimalsをインデックスが偶数のものと奇数のものに分けて、それぞれ別のリストに格納してみます。

次にサンプルコードと実行結果を示します。まずインデックスが偶数のものを格納するリストlist_evenと、奇数のものを格納するリストlist_oddを定義しています。for文ではenumerateという関数を使っていますが、この関数を使うことでリストのインデックスと要素を取得しています。具体的には、変数iにリストのインデックス、変数animalに要素を格納しています。if文ではインデックスを2で割った余りを計算して、偶数か奇数かを判定しています。奇数の場合には要素をリストlist_oddに追加、偶数の場合にはリストlist_evenに追加していきます。for文を抜けた後、最後に2つのリストの内容をprint関数で表示しています。実行結果から想定した通りの結果が得られていることがわかります。

Pythonコード

In [7]:

list_odd = []
list_even = []
for i, animal in enumerate(animals):
    if i % 2 == 1:
        list_odd.append(animal)
    else:
        list_even.append(animal)
print(list_odd)
print(list_even)

実行結果

Jupyter Notebookで実行した結果です。for文を使った繰り返し処理で、リストを分けています。
Jupyter Notebookでの実行結果:for文を使った繰り返し処理(インデックス付き)

まとめ

今回はPythonの「繰り返し処理」について紹介しました!次回はPythonの辞書について扱う予定です!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です