第4回 python入門 データをまとめるリストとタプルについて説明したいと思います。
今回もpythonを使ってAnacondaのspyderで説明します。まずリストとタプルを勉強する前に少し変数についておさらいしましょう。変数を使用したい場合は、変数名を記載して値を入れ込むというものでしたね
a=20
これで変数 a を使用できました。ここで問題です。
例えば、1人の5科目のテストの平均値を求めるプログラムで計算してみましょう。今までの学んだ知識であればこのように書くと思われます。
Japanese = 65
Math = 100
Science = 85
History = 80
English = 52
total = Japanese + Math ・・・・・+English
average =total/5
print(average)
このようにそれぞれ国語、数学、理科、歴史、英語のように変数名を書いて、合計値を計算をして、平均値を求めると思いますが。
今回は1人の5科目だけでしたが、もし40人の5科目の平均値を求めなくてはならない場合はどうでしょうか。
今までの知識だけでは、凄く多い行のプログラムになってしまいます。プログラムが多ければ間違いもしやすくなります。では、短いプログラムにするにはどうしたらよいかと言いますと、答えはリストやタプルを使用することです。
●●●リストの図
リストとは簡単に言いますと、変数の箱を集めたものです。そして集められた箱には番号がついています。リストの基本式はこのように記載します。
リスト名=[ 値,値,値]
順番に説明致します。今回の場合テストがリスト名で、 [ ] の中がリストの要素 を表している部分です。
この1つ1つが変数の箱というイメージです。リスト名は変数名と同じく名前も自由に決めてOKです。今回はわかりやすくするためにtestとしています。
test = [ 60, 100 , 85 , 52, 80 ]
test = [ 60, 100 , 85 , 52, 80 ] は5つの要素を持つリストになります。ここで、リストにおいて一番注意すべき点について説明致します。リストの各要素を使用するには、リスト名と何番目の要素なのかを指定します。この何番目かですが、リストの要素はゼロから数えます。この60というのは、testリストのゼロ番目です。次の100はtestリストの1番目です。ですので、この場合に
test[5]
testの5番目を書くとエラーが出ます。要素は全部で5科目ですので、要素番号では0〜4までしかありません。そのためエラーが発生しています。ちなみにこの要素のことをインデックスと呼びます。それでは実際にプログラムを確認してみましょう。(๑╹ω╹๑ )
例えば先程の5教科をリストで記載して見ますと、このように記載できます。
test = [ 65, 100 , 85 , 52, 80 ]
total = test[0] + test[1] + test[2] + test[3] + test[4]
average =total/5
print(average)
これで実行してみますと、同じ結果が出力されます。
リストの特徴として値を書き換えることができます。値を書き換える時はリスト名と要素番号指定し値を代入します。試しにこのように書いてみます。
test = [ 65, 100 , 85 , 52, 80 ]
//↓↓↓追加
test[3]=0
//↑↑↑追加
total = test[0] + test[1] + test[2] + test[3] + test[4]
average =total/5
print(average)
//↓↓↓追加
print(test)
//↑↑↑追加
例えばリスト要素の3番目は、左から数えて0、1、2、3、の
52のところに新たに分かりやすいように0を代入して見てみます。これで実行してみます。このように値が変化していることが確認できます。
●●●図の入れ込む
今回は数値だけでしたが、リストは文字や数字を混在させることもできます。
次にタプルについても説明します。基本的にはリストと同じなのですが、
タプルは値を書き換えることができません。
タプルの場合の基本式はこのように記載します。
●●● タプル基本式
●●●tapuru=(10,20,30)
●●●print(tapuru)
●●●
このように記載します。
これで実行してみますとこのように
リストと同じくデータをまとめることができることが確認できます。
ここで試しに値を書き換えようとしてみます。
●●● タプル基本式
●●●tapuru=(10,20,30)
↓追加
●●●tapuru[1]=0
↑追加
●●●
●●●print(tapuru)
●●●
これで実行してみようと思います。
エラーが発生しました。
このようにタプルは書き換えることができません。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
はい、ここで少し応用編です。
例えば今回の科目が多くなり、いくつ科目があるか判断できない場合を考えて見ます。
まずそれぞれの点数を配列に入れていきます。
そしてここからが重要です。
全科目での平均値を計算します。
計算の仕方はどうするかと言いますと
「1、2、3、4、5 一つずつ増やして繰り返し処理でトータルを計算します」
つまりwhile文を使います。
しかし、ここで問題があります科目数がわからない状態です。
この時にレングスを使います。レングスとはリストの全体の要素数を指すことができます。
実際に試しに書いて見ましょう。
このようにたくさん科目を入れて見ます。ユーザーによってはコピぺで
●●● test = [180, 100 , 90 , 80, 180 , 80 ,55 , 100 , 55,10, 180, 100 , 90 , 80, 180 , 80 ,55 , 100 , 55,10]
●●● total = 0
●●● i = 0
●●● while i < test.Length :
●●● total = total + test[ i ];
●●● i+=1
●●● average =total/test.Length;
●●● print(“合計値;{ 0 } ”, total );
●●● print(“平均値;{ 0 } ”, average );
これで実行して見ますと
科目数がわからなくても
合計値と平均値が求めることができました。
これはwhile文でレングス分処理を繰り替えしていたためです。
あまりイメージがつかないかもしれませんが、何故レングスがあるかというのは
データなど集めるリストなどに入れるデータは、膨大な量のデータ数を入れます。
AIを利用する上では膨大なデータは必須です。
例えばサーミスタという温度計と比較する際に参考にするデータをいれたりします。
温度計といっても-100〜100度以上ありますよね、これだけでも200以上のデータを必要とします。
精密なものになりますともっと多いデータになります
サーミスタの値を検知してその値をリストにある値と比較しより近い値をデータとして読み込みやっと温度が把握できます。
そういった場合にリストのデータはある程度多いデータとなってしまいます。
このような時にリストのデータ数を数える必要をなくしたものがレングスというものです。
少し難しくなってしまいましたが覚えておきましょう。
はい、今回はリストとタプルについてということで
テスト科目を例にしてリストの仕組みから、実際にリストやタプルを用いて合計値、平均値を求めて見ました。
また、補足としてレングスについても説明致しました。
次回の講座ではrangeとdictについての内容となっています便利な構文ですので是非ご覧ください。
以上で、python入門4を終了と致します。ご静聴ありがとうございました。(๑╹ω╹๑ )
コメント