【入門者向け】Pythonの基礎文法② リスト・タプル・辞書|Python入門 #3

f:id:lib-arts:20190804170008p:plain

#1ではPythonを用いたFizzBuzzのコーディングについてまとめました。

入門者の方に読んでみていただいたところ、少し難しかったようなので、#2以降では#1で触れた基本文法をそれぞれもう少し丁寧に解説を行なっていきます。基本的には下記のPythonのドキュメントのチュートリアルなどを元にして解説していきます。

Python チュートリアル — Python 3.7.4 ドキュメント

#2ではPythonにおける四則演算・文字列について取り扱いました。
https://lib-arts.hatenablog.com/entry/entrance_python2
#3ではSection3.1.3のリスト型やSection5のデータ構造を中心にまとめていきます。

3. 形式ばらない Python の紹介 — Python 3.7.4 ドキュメント

5. データ構造 — Python 3.7.4 ドキュメント

以下目次になります。
1. リスト型に関して(3.1.3 & 5.1)
2. タプルとシーケンス(5.3)
3. 辞書型 (dictionary) (5.5)
4. まとめ

 

1. リスト型に関して(3.1.3 & 5.1)
1節ではドキュメントのチュートリアルの3.1.3と5.1で言及されているリスト型について取り扱っていきます。
まずは3.1.3からいくつか動かしてみます。

squares = [1, 4, 9, 16, 25]
print(squares[0])
print(squares[-1])
print(squares[-3:])
print(squares[:])

上記の実行結果は下記のようになります。

f:id:lib-arts:20190808190432p:plain

次にリストの連結や要素の入れ替え、要素の追加、リストのサイズの確認について見ていきます。

print(squares + [36, 49, 64, 81, 100]) # 要素の追加

cubes = [1, 8, 27, 65, 125]
print(cubes)
cubes[3] = 64 # 要素の入れ替え
print(cubes)

cubes.append(216) # 要素の追加
cubes.append(7 ** 3) # 要素の追加
print(cubes)

print(len(cubes)) # リストのサイズの確認 

実行結果は下記のようになります。

f:id:lib-arts:20190808190505p:plain

ここまでで3.1.3の内容は一通り抑えられたので、次に5.1の内容について確認していきます。

f:id:lib-arts:20190808190951p:plain

5.1ではリストに関連するメソッドについて上記のようにまとめられています。全部確認すると大変なので、最初のうちはappendによる要素の追加だけ把握しておけば十分です。

リストに関しては一通り扱えたので、1節はここまでとします。


2. タプルとシーケンス(5.3)
タプルとリストの比較については下記のようにまとめられています。

f:id:lib-arts:20190808211844p:plain

タプルがリストと違う点は不変型 (immutable) で、変更しないというのが前提にある点です。このため、一度決めたら動かさないものをタプルとして持つ時が多いです。
タプルは入門にあたってはリストと用途が被るかつリストほど使用しないので、2節はここまでとします。


3. 辞書型 (dictionary) (5.5)
3節では辞書型について取り扱います。辞書は他の言語にも連想記憶(associated memory)や連想配列(associative array)という名前で存在することがあるとされています。

f:id:lib-arts:20190808223502p:plain

長々と書くと大変なので、先に概要がつかめるように上記にキャプチャを貼りました。辞書はキー(Key)と値(Value)の組み合わせで実装されています。辞書は{Key1:Value1,Key2:Value2,...}の順で定義することができます。また、array["key"]で対応する値を取り出すことができます。このように対になる情報を表現するにあたって、辞書型は大変便利な手法です。

下記で簡単に実行してみましょう。

tel = {'jack': 4098, 'sape': 4139}
print(tel['jack'])

実行結果は下記になります。

f:id:lib-arts:20190808224308p:plain


ここまでリスト型、タプル型、辞書型の三つについて見てきましたが、それぞれの型を見分けるにあたっては、type関数という便利な関数があります。

squares = [1, 4, 9, 16, 25]
t = (12345, 54321, 'hello!')
tel = {'jack': 4098, 'sape': 4139}

print(type(squares))
print(type(t))
print(type(tel))

実行結果は下記のようになります。

f:id:lib-arts:20190808224656p:plain
1~3節で取り扱ったようにPythonには様々な配列の形式があるので、それぞれの特性を知った上で使いこなしていくことが重要です。


4. まとめ
#3ではPythonにおいて配列を実装する機能として、リスト、タプル、辞書について取り扱いました。
#4ではif文とfor文のような制御構文に関して取り扱います。