【Python基礎】型を使いこなす(後編)

Python

前回に引き続き、型の解説後編を始めさせていただきます。

前編をまだ読んでいないよという方はぜひ前編もご覧ください。

前編は単一のデータ型でしたが後編は複数のデータ型を解説します。

複数のデータ型とは

後編では変数に対して複数の値を持たせたい時に利用する型について解説します。
考え方としては前編と同じで変数につけるラベルが型のイメージであることを思い出しながら
本記事を読んでいただけるとわかりやすくなるかと思います。

では早速紹介していきましょう!!

リスト型(list型)

リスト型では複数の値を取り扱うことができこれまでが1つの箱に1つの値であったのですが
複数の仕切りで区切られた入れ物のことをリスト型といいます。
貨物列車のようなイメージを持ってもらうとわかりやすいと思います。

貨物列車の車両(要素)に1つずつ値を格納していきます。
それぞれの車両には車両番号(インデックス)がつけらえていて一意に特定が可能です。

言語によっては配列(array)と呼ばれるものと同様です。

使い方は「[」「]」で全体を括り値は「,」で仕切って記述します。
具体的な記入イメージはこんな感じです。

week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ]

weekという変数の中に各曜日の略語が文字列型として格納されています。

先ほど各要素を車両番号に例えましたが数え方がちょっと癖があるのでしっかりと解説しますね。
先頭車両を0として数えます。

week変数に格納されているのは7つの要素(車両)がありますが、
先頭の「Mon」には0というインデックス(車両番号)が付与されています。
順番に「Tue」には1というインデックス(車両番号)が付与され他も同様に連番で付与されています。

このインデックスを使うことで各要素だけを取り出すことができます。

print(week[0])

このようなコードを記述するだけでweek列車の0号車に格納された値を取得することができます。
出力結果はこんな感じです。

Mon

ちなみにリストのサイズを超えたインデックスを指定するとエラーになるので注意して下さい。

このリストは要素の中にさらにリストを入れることができます。
これを入れ子のリストと呼びます。

イメージとしては車両の中に座席が指定されているようなイメージです。

では具体的にはどんなものか見てみましょう。

data = [
    ['a-1', 'a-2', 'a-3'],
    ['b-1', 'b-2', 'b-3'],
    ['c-1', 'c-2', 'c-3'],
]
print(data)

出力結果はこんな感じです。

[['a-1', 'a-2', 'a-3'], ['b-1', 'b-2', 'b-3'], ['c-1', 'c-2', 'c-3']]

0両目の車両(インデックス)の0列目の座席(インデックス)に「a-1」が格納されてるイメージです。
同様に0両目(インデックス)の1列目の座席(インデックス)に「a-2」が格納されているという具合です。

では0両目(インデックス)の1列目の座席の値を取り出したい時は
このようにコードを記述します。

print(data[0][1])

変数名の後にインデックスを続けて書けばOKってことですね!
出力結果はこんな感じです。

a-2

このようにリストの要素の中にリストを入れたリストのことを多元リストと呼びます。

タプル型(tuple型)

タプル型は先ほど紹介したリスト型によく似ていますが、
変更ができないという点がリスト型と大きく異なる点です。

あまり意図的に使うことはないですが型としては理解しておく必要が
ありますのでどういったものなのか、どう使うのかを解説します。

使い方は「(」と「)」で全体を括り各要素は「,」で区切ります。
リスト型との違いは全体を括る括弧の種類が違うというところでコード上で
見分けることができます。

具体的な使い方はこんな感じです。

t1 = ('2021', '9', '30')

このt1変数の中身を表示させるとこんな感じになります

('2021', '9', '30')

ちなみに変更ができないというのはこのタプル型に対して
値を追加したりすることができないということです。

セット型(set型)

セット型は複数の値を取り扱える点はリスト・タプルと同じですが、
制約条件が異なります。

セット型ではリスト型と異なり順番を持っていません。
そのため、何番目の要素という指定で値を取り出すことができないです。

また、重複した値を格納することができません。

セット型は同じものを入れないと決めた大きなバケツにデータを
ため込んでいくイメージです。

使い方は値を「,」で区切り「{」「}」で全体を括って利用します。

具体的な使い方はこんな感じ

set1 = {'red', 'yellow', 'green'}

set1の中身を表示させるとこんな感じです。

{'red', 'green', 'yellow'}

値を取り出した時に入力した順番と異なっているのに
気が付いた方がいるかもしれません。

そうです、先ほど解説した通りセット型は順番を持たないので
入力した順番で表示されないことがあります。

辞書型(dict型)

辞書型は一意のキーと値のペアでデータを取り扱います。
リストのようにインデックスで値を参照するのではなくキーを指定して
ペアとなっている値を取得します。

キーの部分の重複はできませんがキーが異なっていれば値で同じものを入れることは可能です。

使い方は「キー:値」というペアを「,」で区切って全体を「{」「}」で括って利用します。

具体的な使い方はこんな感じです。

dict1 = {'10':'東京', '20':'神奈川', '30':'埼玉'}

10をキーとして値を東京というペアを登録した形となっています。
神奈川も埼玉もキーが異なりますが同じ感じです。

キーが10の値を取り出すときはこんな感じ

print(dict1['10'])

変数名の後に「[」「]」でキーを指定するとペアとなっている値を取得することができます。

まとめ

データ型は前編同様で値を入れる箱(変数)に貼り付けるラベル(型)のイメージです。
後編では複数のデータ型であるリスト型・タプル型・セット型・辞書型を解説しました。
それぞれのポイントを簡単にまとめると表の通りです。

#型の名前特徴
1リスト型(list型)順序性をもってデータを複数格納できる
2タプル型(tuple型 )リストと似ているが変更ができない
3セット型(set型)順序性はない。重複したデータは格納できない
4辞書型(dict型)キーと値のペアでデータを取り扱う

最後まで読んでいただきありがとうございます。

型を知ろうの回はこれで終了となります。

少しずつですがわかりやすく解説をしていこうと思いますので
これからもよろしくお願いします!!

コメント