今回はコレクションについてピックアップしたいと思います。
「似たようなデータをまとめて使えるようにしました!」というのが、コレクションの基本ですが、考え方に戸惑うことも多いと思います。
わかります、私も要素の指定の仕方?とか、どこに何が入っているか?どうやって扱ったらいいか全くわかりませんでした。
しかし、コレクションを理解し活用できるようになることで、たくさんのデータを操作できるようになるので、プログラムの幅はグンと広がります!
条件分岐の基本を押させたい方、基本は理解した上でコレクションを利用し複数のデータを格納することで、どのように活用するのか?。をイメージをつかみたい方に最適です。
目次
コレクションとは何ができるのか?
それではそもそも、コレクションとは何か?からスタートしていきたいと思います。
コレクションとは、複数の値をひとつにまとめておいた、データの集合のことです。
イメージとしては、データを格納するための箱です。
「箱」というと、以前私のブログを見ていただいた方は、「変数」を思いだしていただいた方もいるかもしれません。
【変数】 = データを入れておける箱。のことを指していました。
【コレクション】 = 変数のような箱が、集合して、ひとまとまりになったもの。と捉えてください。
なぜコレクションを利用するのか?
同じデータを入れる箱。という定義であれば、変数を使えばよいのでは?と思うかもしれませんが、
一つや二つのデータを、複数のプログラムで使う。ということであれば、都度変数を宣言して使用することも可能とは思います。
しかし、以下の場合どうなるか、少し考えてみましょう。
- 日々増えていくデータがあり、その都度変数を宣言しなければならない。
→単純に面倒ですよね? - データが更新される可能性があるが、一部のデータでは上書きされてほしくない。
→変数は上書きができてしまうので、間違えた値を保持してしまった場合は、リスクがありますよね?
と、ざっと書いてみましたが、変数だけでデータを利用するのは、限界があるのです。
個別単位で利用するよりも、複数まとめて利用したいという場面が、必ず出てきます。
そんな時に、コレクションを利用します。
リストの使い方と前提(単語の理解)
まずは、前提となる単語からご説明します。
###【リストの基本的な使い方】###
リストの名前(変数) = [要素1, 要素2, 要素3,・・・]
要素
コレクションの中に入っている値を指しています。
後述しますが、リストというコレクションの要素を取得する場合は、以下のように記載します。
###【リストを宣言】###
list = ['ぞう', 'サイ', 'ペンギン', 'くじゃく']
###【添字[1]の要素を取得し表示する】###
print(list[1])
###【表示される動物】###
「サイ」が、表示されます。
添字
各要素には、その要素に応じて、自動で管理番号が採番されます。
その自動採番された番号を、添字とよびます。
ポイントとして、添字は、0から始まります。
なので、表示される要素は、’サイ’になります。 [0] = ぞう
[1] = サイ
[2] = ペンギン
[3] = くじゃく
添字と要素のイメージ図
list(コレクション) | ||||
---|---|---|---|---|
要素 | ぞう | サイ | ペンギン | くじゃく |
添字 | 0 | 1 | 2 | 3 |
リストの変更は、append()や、remove()を利用しますが、それらの説明は別の記事を設けたいと思います。
タプルの使い方(単語の理解)
前述しましたが、タプルはリストと異なり、追加・変更・削除などのデータの書き換えができません。
一見不便そうですが、プログラムを利用している間に、書き換えてほしくないデータを格納する際に使用します。
###【タプルの基本的な使い方】###
タプルの名前(変数) = (要素1, 要素2, 要素3,・・・)
リストの時 → […] タプルの時 → (…)
###【タプルを宣言】###
tuple = ('ぞう', 'サイ', 'ペンギン', 'くじゃく')
###【添字[1]の要素を取得し表示する】###
print(tuple[1])
###【表示される動物】###
「サイ」が、表示されます。
本当にそっくりでややこしいですよね…。
ディクショナリ
リスト・タプルのように、自動で管理番号を採番してくれるコレクションでした。
開発する側は格納する値が何か?だけを意識すればよかったのですが、一方で、何番目にどのデータが入っているか?と言うのは、具体的にはわかりにくいものでした。
要素に対して自分で特定の【キー】を割り当て見出しを付与することができる、コレクションがあります。
それが、ディクショナリです。
###【ディクショナリの基本的な使い方】###
ディクショナリの名前(変数) = {'キー1':値, 'キー2':値,'キー3':値,・・・}
###【ディクショナリを宣言】###
dict = {'elephant':アフリカゾウ, 'rhino':サイ,'penguin':ペンギン,'Peacock':くじゃく}
###【キー[rhino]の要素を取得し表示する】###
print(dict['rhino'])
###【表示される動物】###
「サイ」が、表示されます。
###【ディクショナリ内の全ての要素を取得し表示する】###
print(dict)
###【表示される動物】###
{'elephant':アフリカゾウ, 'rhino':サイ,'penguin':ペンギン,'Peacock':くじゃく}
キー:値の形で表示されます。
セット
セットは今まで紹介したコレクションの中でも特徴的なものです。
格納されている要素に対して、順番がなく(添字が採番されない)。
また、特定の要素を参照するための手段がありません(キーがない)。
###【セットの基本的な使い方】###
セットの名前(変数) = {要素1, 要素2, 要素3,・・・}
###【セットを宣言】###
animal = {'elephant', 'rhino', 'penguin', 'Peacock', 'rhino'}
###【セット(animal)内の全ての要素を取得し表示する】###
print(dict)
###【表示される動物】###
{'penguin', 'Peacock','elephant','rhino'}
また、’rhino’を2回代入してみましたが、セット内では、重複した値を代入することができないため、どちらか片方の値のみが残ります。
あまり、活躍の場がなさそうに思いますが、、、
これがどういった場合に用いられるか?と言うと、和集合や差集合などの分析で用いられることがあります。
しかし、今回は詳細は割愛させてください。
コレクションのネストや二次元配列について記事にする時に、あわせて記載しようと思います。
EOF
コレクションについて、紹介させていただきました。
初めはとっつきにくいと思いますが、使っていくうちにそれぞれのコレクションの特徴がつかめてきますので、ゆっくり整理してください。
皆さんの理解に私のブログが役に立ったなら幸いです!
本日も一緒に学習してくださり、ありがとうございました!
追伸:これからPythonを学ぶなら
これからPythonを学びたい!業務に活かせるように学習したい!という方ならば、まずはUdemyで学習を始めることをお勧めします。
Udemyでは、数多くの講師陣がITの知識やスキルアップのための解説動画を提供していて、現場でも役立つ知識が多数存在します。
特に、流行りもあるのだと思いますがPythonやAWSの講座は数が多く品質が高いものが多いです。
手前味噌ながら以下の記事で、主に初学者の方向けのお勧め講座のレビューをしていますので、ご参考にしていただけますと幸甚です。