プログラムをもっと便利に書きあげるために
第2 ~ 5回で、プログラムの基本構文と呼ばれる、
・順次 (上から順に1行ずつ処理されること)
・分岐 (if文を用いた条件ごとの処理分け)
・繰り返し (for文、while文を用いた繰り返し処理)
を紹介しました。この基本構文をマスターしていれば、基本的にはどんな処理もプログラムで行うことが出来るといわれていますが、実際にはここから紹介されていく「コレクション」や「関数」、「クラス」を用いてより「簡潔」に、「わかりやすい」、「効率的」なコードを書くことがエンジニアになるためには必要になってきます。
今回の記事では、まず「コレクション」の リスト について学んでいきましょう。
コレクションとは
下記のようなコードがあったとします。
monday_temp = int(input("先週月曜日の最高気温は?>>"))
tuesday_temp = int(input("先週火曜日の最高気温は?>>"))
wednesday_temp = int(input("先週水曜日の最高気温は?>>"))
thursday_temp = int(input("先週木曜日の最高気温は?>>"))
friday_temp = int(input("先週金曜日の最高気温は?>>"))
saturday_temp = int(input("先週土曜日の最高気温は?>>"))
sunday_temp = int(input("先週日曜日の最高気温は?>>"))
# 以下、先週1週間での最高気温を求める
7つのint型の変数を比較して、最も大きな値を求めたいとします。
max_temp = monday_temp # 月曜日を仮の最高気温(暫定の最高気温)に設定
if max_temp < tuesday_temp: # 暫定の最高気温と火曜日を比較
max_temp = tuesday_temp # 火曜日の方が高かったら最高気温を上書き
if max_temp < wednesday_temp: # 暫定の最高気温と水曜日を比較
max_temp = wednesday_temp # 水曜日の方が高かったら最高気温を上書き
...
この作業を繰り返せば最高気温は求めることが出来そうですが、気が遠くなりますね。。。
今回紹介するリストを使えば、下記のコードで簡単に最高気温を求めることが出来ます。
temp_list = [monday_temp, tuesday_temp, wednesday_temp, thursday_temp, friday_temp, saturday_temp, sunday_temp]
max_temp = max(temp_list)
細かい解説は後ほどしますが、if文での最高気温を求める記述(正直全部書くのが面倒でしたw)がたった2行で終わってしまったことがここでのポイントです。
このように、プログラムの中でたくさんのデータを扱う場合はコレクションという複数のデータをまとめて扱う仕組みを利用すると非常に便利です。「簡潔」に、「わかりやすい」、「効率的」なコードになっていると思いませんか?
今回紹介するのはコレクションのうち、よく使われているリスト(list)です。
リスト の基本
リストは、複数の値が列のように並べられているコレクションです。今回であれば下記のようなイメージで値が格納されていくイメージです。
0番目に変数「monday_temp」、1番目に変数「tuesday_temp」… 6番目に変数「sunday_temp」というように格納されていきます。このように、リストの各要素には列のように順序が付けられています(0番目から始まることに注意)。各要素の並びに順序が存在する仕組みを、Pythonではシーケンスと呼んでいます。リストはシーケンスの1つとなっています。
リスト の作成
リストを扱うには、
リストを作成する
という処理が必要になります。リストにはさまざまな作成方法がありますが、ここでは最も一般的な方法について紹介します。
temp_list = [26, 22, 28, 29, 25, 25, 30]
まず、リストを表す変数名を定義します。=演算子で結んだ右辺に[ ]を記載し、中に格納したい値をカンマ区切りで記載するだけです。冒頭のコードのように、[monday_temp, tuesday_temp … ]と既に定義済みの変数を記載することもできます。
要素の値の変更
リストを作成すると、リスト内のそれぞれの要素を、max_temp[0]、max_temp[1] といった記述で扱えるようになります。
temp_list = [26, 22, 28, 29, 25, 25, 30]
print(temp_list[0])
上記のように記載すると、実行結果は26となります。この仕組みがわかれば、リストの要素変更はいたってシンプルです。
temp_list = [26, 22, 28, 29, 25, 25, 30]
temp_list[0] = 28
print(temp_list[0])
2行目の temp_list[0] = 28 という記述に注目してください。変更したいリストの場所を指定して、=演算子の右辺に更新したい値を記載するだけです。
この他にもリストの要素を新たに追加、削除したり、冒頭の記述で用いたような1つの記述で格納されているint型の最大値を取得することもできます。こちらについては次回紹介していきます。
コメント