【Day6】Python入門 2.1:コンテナとは |2.2:リスト

目次

要約

本日は、Pythonで以下を学びました。

コンテナ

Python における「関連するデータをグループにして、まとめて1つの変数として扱える」しくみ。

コンテナにはいくつかの種類があり、「リスト」「ディクショナリ」「タプル」「セット」の4つが代表的。

リストの定義、要素参照・合計・追加・削除・変更

license = ['看護師' , '保健師' , '医療情報技師' , '第1種滅菌技師']
license.append('データエンジニア')
license.remove('看護師')
license[0] = '普通自動車第一種運転免許'
print(f'私の持っている資格は {license} です!')')

はじめに

前回は「データ型」について学びました。

​今回は、Pythonのコンテナリストについて学習します。


コンテナ

コンテナとは

これまでは、「個々の独立したデータ」として扱ってきました。

その場合、データが増えるたびにコードを修正しなければならなかったり、

コードが長く、複雑化してしまうなどの問題があります。

そこで、ほとんどのプログラミング言語では、

「関連するデータをグループにして、まとめて1つの変数として扱える」しくみが用意されています。

このようなしくみをデータ構造(data structure)といい、

Pythonではコンテナ(container)またはコレクション(collection)と呼びます。

コンテナにはいくつかの種類があり、「リスト」「ディクショナリ」「タプル」「セット」の4つが代表的です。

コンテナにも種類があるんですね!

リスト

リストの特徴

リスト(list)とは、複数の値を1列に並べて管理するコンテナです。

リストに格納されているそれぞれの値を要素(element)といい、

先頭から順に添え字またはインデックス(index)と呼ばれる管理番号が自動で振られます

また、添え字は0から始まります

したがって、添え字の最大値は要素の数よりも1つ少ない数になっています

添え字は0から始まる

最初の要素を示す添え字は0であり、最後の添え字は要素の数より1つ少ない数になる。

とあるn番目の要素を指定するときには、添え字は(n – 1)となりそうですね!


リストの作成

リストは[](角カッコ)の中にカンマ区切りで値を並べて、1つのリストを生み出しています

リストの定義

変数 = [要素1 , 要素2 , 要素3 , ・・・]

※要素には、数値や文字列などを指定できる。

リストを作成してみましょう。

#リストを作成していきます
license = ['看護師' , '保健師' , '医療情報技師' , '第1種滅菌技師']
print(f'持っている資格は {license} です!')

変数と同じく、リストにも型の定めはありません

したがって、1つのリストに対して、文字列と数値など、異なるデータ型の値を格納できます


リスト内の特定の要素だけを参照したい場合は、

変数名の直後に[](角カッコ)で囲んで添え字を記述します

リストの要素を参照

リスト[添え字]

※割り振られていない添え字を指定するとエラーになる。

リストの要素を参照してみましょう。

#3番目の資格を参照してみます
license = ['看護師' , '保健師' , '医療情報技師' , '第1種滅菌技師']
n = 3 #n番目
print(f'{n}番目の持っている資格は {license[n - 1]} です!')

少し応用して、n番目を使用したコードにしています!


リスト要素の合計と要素数の取得

Pythonには、リストなどのデータの集まりに対して、合計値を求める sum関数

要素の数を求める len関数 がある。

sum関数

sum(リスト)

※すべての要素を合計した値に置き換わる。
※文字列を格納しているリストには使えない。
※後述するタプルやセットに対しても使用できる。

len関数

len(リスト)

※リストの要素数に置き換わる。
※後述するディクショナリ、タプル、セットに対しても使用できる。

sum関数はエクセルと同じですね!
ただし、average関数はないため、sum() / len() で求める必要があるみたいです!

sum関数、len関数を使って、例文を作ってみましょう。

#sum関数,len関数を使ってみます
scores = [88 , 90, 95]
total = sum(scores)
avg = total / len(scores)
print(f'合計{total}点、平均{avg}点です!')

sum関数とlen関数を使って、averageまで出力することができました。


リスト要素の追加・削除・変更

一度定義したリストにappend関数を使用して、要素を追加できます。

追加される位置はリストの末尾です。

なお、この関数は、リスト.append()の形で使用するタイプの関数なので注意しましょう。

リストの末尾に値を追加

リスト.append(リストに追加したい値)

※指定した値が、リストの末尾に新たな要素として追加される。

また、remove関数を使うと指定した要素をリスト内から削除できます。

この関数もリスト.remove()の形で使います

リストから指定した値を削除

リスト.remove(リストから削除したい値)

※削除した要素の後ろにある要素は前に詰められる。

remove関数を使うと、その後ろにある値をn番目で指定していたときにズレそうですね・・・。
しっかり、名称で指定しないといけないのだろうか・・・。

リスト内の特定の要素の内容を変更するには、添え字を指定して代入します。

リストの要素を変更

リスト[変更要素の添え字] = 変更後の値

リスト要素の追加・削除・変更を使ってみましょう。

#リスト要素の追加・削除・変更を行います。
license = ['看護師' , '保健師' , '医療情報技師' , '第1種滅菌技師']
license.append('データエンジニア')
license.remove('看護師')
license[0] = '普通自動車第一種運転免許'
print(f'私の持っている資格は {license} です!')

問題なくリスト要素の追加・削除・変更を行うことができました。

リストの中身をしっかり把握したうえで追加・削除・変更を行うか、
または追加のみ行い、必要なデータを引っ張る方が無難かな・・・?


この他にも、リストでは高度な要素の指定方法があります。

スライスによる範囲指定

リスト変数[A : B]

※添え字がA 以上 B 未満の要素を参照する部分リストに評価される。
※A : と指定すると、添え字がA以上のすべての要素を参照する。
※: B と指定すると、添え字がB未満のすべての要素を参照する。
※: のみを指定すると、すべての要素を参照する。

負の数による指定

リストの要素は、先頭からだけでなく、末尾からの順序でも指定できます。

リストの末尾の要素は添え字 -1 で参照し、その1つ前の要素は -2 で参照します。


まとめ

本日は、Pythonで以下を学びました。

コンテナ 

Python における「関連するデータをグループにして、まとめて1つの変数として扱える」しくみ。

コンテナにはいくつかの種類があり、「リスト」「ディクショナリ」「タプル」「セット」の4つが代表的。

リストの定義、要素参照・合計・追加・削除・変更 

license = ['看護師' , '保健師' , '医療情報技師' , '第1種滅菌技師']
license.append('データエンジニア')
license.remove('看護師')
license[0] = '普通自動車第一種運転免許'
print(f'私の持っている資格は {license} です!')

次回は「ディクショナリ」を扱っていきます。


覚えることが多くて大変ですが、着実にコードが書けるようになってきているのを感じます!

目次