[Python] リスト、辞書、タプルを理解しよう!

皆さんこんにちは。
本日はPythonでもよく扱われる
  • リスト
  • 辞書
  • タプル
に関して解説をしていきます。
データ分析やAI開発だけでなく、
Pythonで何かしら処理をさせようと思ったときには避けて通れないので
ぜひ覚えて行ってください。

Today's Contents


またまた馴染みのない言葉が出てきましたね。
実はこの3つ、"データ型"の名前なんです。
前回データ型には5つの型があるとお話しました。
前回記事:[Python]データの型を理解しよう!
実はそれですべてではなく、
"各データが集合する箱"として上記3つのデータ型が準備されています。
言葉で説明するのであれば、
"各データ型の要素が格納されるデータ型"
といったところでしょうか。
意味が分かりませんね。
次から詳しく説明します。

先ずはリスト型に関してです。
皆さんは小学生時代にこのような経験をしたことはないでしょうか。
"今日は2日なので、出席番号2番の人が発表して下さい"

1番→新井さん
2番→井上さん
3番→上原さん
萩原さんが当てられたということになります。

こちらが立派なリスト型の概念です。

Pythonではリスト型を以下のように記載します。
seito = ['新井さん', '井上さん', '上原さん']
※名前は文字列なので''で囲っています。
,で区切ることで、データの挿入を行うことができます。

リストにはインデックスと呼ばれる順番があり、先頭から数えて、
0番目、1番目、2番目となります。
※ですので厳密にいうと2番は上原さんなのですが、ご愛嬌・・

またリストの各要素には、前回の記事で紹介したデータ型(str, int, float, datetime, bool)に加えて、
リストそのものを格納することも可能です。

実践してみましょう。

リストの作成 : seito_list = ['新井さん', '井上さん', '上原さん']
リストの内容の確認 : print(seito_list)
リストの型の確認 : print(type(seito_list))

作成したリストはインデックスを指定することで中身を取り出すことができます。
2番のインデックスの要素を取り出してみましょう。

seito_list[2]

確りとリスト型として作成されており、
データが取り出せることが確認できましたね。

続いては辞書型です。
辞書型もリストと同じく、複数の要素を格納できるデータ型の1つです。
リストではインデックスと呼ばれる番号で要素を管理していたのに対して、
辞書型では"キー"と呼ばれるお題目に対して"バリュー"と呼ばれる要素を管理します。
リスト同様に具体例でイメージしてみましょう。

例えば何かしらの貸し借りは頭の中で辞書型で整理されています。
新井さん→本を貸した
井上さん→150円貸した
上原さん→ゲームと1000円貸した
上記を辞書型で整理すると・・・
lend_dict = {
 '新井さん':'本',
 '井上さん':150,
 '上原さん':['ゲーム', 1000]
 }

となります。

辞書の作成に関しては、{}で全体を囲いつつ、キーとバリューのペアを:でつなげ、
要素が複数になる場合は,で区切る
といったものです。
実際に辞書を作成して内容を確認してみましょう。

lend_dict = {
 '新井さん':'本',
 '井上さん':150,
 '上原さん':['ゲーム', 1000]
 }

辞書型の確認:print(type(lend_dict))

辞書型になっていることが分かると思います。

辞書型もリスト同様にデータを引き出すことができます。
その際にはどのデータを取り出すか、キーの値を指定してあげましょう。

lend_dict['新井さん']

新井さんへ貸したものの内容がパッとわかりますね。

最後にタプル型の説明です。
タプル型は辞書型とは異なり、非常にリストに似ているデータ型です。
大きな違いとして、
リスト型:一度挿入した要素を後から書き換えることができる
タプル型;一度タプルを作成した後は要素の追加や変更/削除が行えない
という点にあります。

表記方法は非常にシンプルで、リストは[]で囲いましたが、
タプルは()で囲ってあげるだけで作成できます。

それではリスト作成時に利用した例を用いて、タプルでデータを作成してみましょう。
タプルの作成 : seito_tuple = ('新井さん', '井上さん', '上原さん')
タプルの内容の確認 : print(seito_tuple)
タプルの型の確認 : print(type(seito_tuple))

作成したタプルはインデックスを指定することで中身を取り出すことができます。
2番のインデックスの要素を取り出してみましょう。

seito_tuple[2]

これで新井さん、井上さん、上原さんは学年が変わっても出席番号が固定されてしまいました・・・

本日3つのデータの集合の箱の説明をしました。
それぞれまとめます。

【リスト】
表記方法:list_obj = ['要素1', '要素2', '要素3']
特徴:要素にインデックスと呼ばれる順番が付き、要素自体の入れ替えや書き換え追加/削除が可能
用途:動的に変更の可能性がある要素の集合を作るとき

【辞書】
表記方法:dict_obj = {'キー1':'要素1', 'キー2':'要素2', 'キー3':'要素3'}
特徴:キーに対するバリューという形でペアで要素を管理

【タプル】
表記方法:tuple_obj = ('要素1', '要素2', '要素3')
特徴:要素にインデックスと呼ばれる順番が付き、一度作成したタプルは変更不可能
用途:動的に変更の可能性がない要素の集合を作るとき

本日は以上です。
お疲れ様でした!

コメント