はじめに
前回のPython入門(9)では、Pythonの関数の定義について学びました。
Python入門の第十弾として、Pythonのオブジェクトとリストについて紹介します。
この記事を読むと次の疑問について知ることができます。
それでは、Pythonのオブジェクトとリストをこれから始めようとする初心者向けに分かりやすく解説していきます。
Pythonのオブジェクトとは?
Pythonの3.10.4のドキュメントには、次のように書かれています。
Python における オブジェクト (object) とは、データを抽象的に表したものです。Python プログラムにおけるデータは全て、オブジェクトまたはオブジェクト間の関係として表されます。(ある意味では、プログラムコードもまたオブジェクトとして表されます。
つまり、Pythonで扱うデータ型やプログラムも含めて全てオブジェクト(Object)ということができます。
具体的には、「20」、「100」のような数値型データは数値型オブジェクトであり、「xyz」、「オブジェクト」のような文字列型データは文字列型オブジェクトであり、その他のPythonで扱うデータ型全てがオブジェクトとなります。
また、前回紹介した関数なども関数オブジェクトであり、import 文を使ってロードした モジュール (Calendarモジュール)もモジュール型のCalendarオブジェクトとなります。
リストオブジェクト
「for 文による繰り返し処理」でリストオブジェクトとして、東京都の1週間のコロナ感染者数 [2549, 2194, 1344, 2362, 2415, 2335, 2111]を扱いましたが、このように決まった要素(値)が並んだようなデータ形式をPythonではリスト型データと呼び、リストオブジェクトとなります。
他のプログラム言語などでは配列などと呼ぶこともありますが、Pythonではリストと呼びます。
リストオブジェクトは、半角の角カッコ 「[」と「]」の間に要素(値)を半角コンマ「,」で区切って並べて作成します。
[要素1,要素2,要素3,‥‥]
具体的な例を示すと、
ある日の主要な都道府県(東京都、大阪府、神奈川県、埼玉県、愛知県、北海道)のコロナ感染者数を並べて作成すると、次のようになります。
todoufukens = ['東京都', '大阪府', '神奈川県', '埼玉県', '愛知県', '北海道']
numbers_corona = [2329, 1414, 919, 780, 997, 723]
「todoufukens」は主要な都道府県の文字列の要素(値)を持ったリストであり、「numbers_corona」はコロナの感染者数の数値型要素(値)を持ったリストとなります。
リストオブジェクトの要素の参照
リストオブジェクト内の要素をどのようにして参照するかと言うと、リストオブジェクト内のデータにインデックスを付けます。
リストの最初の要素を0として、順番に番号を振っていきます。
下図を参照。
インデックス | 0 | 1 | 2 | 3 | 4 | 5 |
todoufukens | 東京都 | 大阪府 | 神奈川県 | 埼玉県 | 愛知県 | 北海道 |
numbers_corona |
2329 | 1414 | 919 | 780 | 997 | 723 |
リスト内要素の参照は、次のようになります。
リストオブジェクト名[インデックス]
したがって、埼玉県と埼玉県のコロナ感染者数を参照する場合は、todoufukens[3]とnumbers_corona[3]となります。
インデックスの範囲外を指定するとエラーとなりますので注意してください。
例えば、都道府県(numbers_corona)やコロナ感染者数(numbers_corona)のリストの数は6個であり、最後のインデックスは6-1=5となりますので、numbers_corona[6]、numbers_corona[6]と参照すると「IndexError」となりますので注意してください。
リスト内の要素の操作
リスト内の要素の操作には、要素の追加、削除、置換などが行えます。
要素の追加
リストに要素を追加したい場合には、リストのメソッドである insert() を使用します。
insert()メソッドの構文は次の通り。
リストオズジェクト名.insert(インデックスによる挿入位置, 要素オブジェクト)
例題として、先の都道府県(numbers_corona)やコロナ感染者数(numbers_corona)のそれぞれのリストのインデックス5の所に沖縄と沖縄のコロナ感染者数(1542)を挿入してみましょう。
要素の置換
リスト内の要素を置換する場合は、次にようにします。
リストオブジェクト名[置換する要素のインデックス] = 置換する要素
先ほど挿入した都道府県(numbers_corona)やコロナ感染者数(numbers_corona)の沖縄と沖縄でのコロナ感染者数を福岡県、福岡県のコロナ感染者数(752)に置換してみましょう。
要素の削除
リストオブジェクト内の要素を削除したい場合は、del 文を用います。
del 文の構文は次の通り。
del リストオブジェクト名[削除する要素のインデックス]
例題として、先ほど置換した福岡県と福岡県のコロナ感染者数を削除して見ましょう。
リストの繰り返し処理
リスト内のデータの総和を求めたい場合などは、リスト内の各要素の値をループで回して一つづつ足してやればよいことになります。
例えば、前出の主要な都道府県のコロナ感染者数の総和を求める場合は、while文を使う場合は次のようになります。
また、for 文を使うと次のように簡単になります。
参考に、さらに簡単に総和を求めるならば、sum関数があります。
おわりに
如何だったでしょうか?
Pythonのオブジェクトとは?、リストオブジェクト、リストオブジェクトの要素の参照、リスト内の要素の操作、要素の追加、要素の置換、要素の削除、リストの繰り返し処理などについて解説してきました。
この記事を読みながらPythonを学んでもらえればと思います。
次をお楽しみに?
以上です。
コメント