初心者のためのPython入門~データ型:list, tuple, dict~

どうも~むるむるです~

今回の記事では「データ型:list, tuple, dict」について学んでいきたいと思います.

このシリーズではプログラミング初心者が最低限のPythonの知識を最短で身に着けることを目標としています.

このシリーズでは以下の順番でPythonの基本的な知識を学習していきます.

複数のデータを表現するためのデータ型

さて,前回まででは値を一つだけであるデータ型(int, float, str, bool)を紹介してきましたが,ここで紹介するlist(リスト), tuple(タプル), dict(辞書)型のデータ型は値を複数持つことができます.

以下のコードを見てみましょう.

# 変数(複数の値)
# list
l1 = [1, 2, 3]
# tuple
t1 = (1, 2, 3)
# dict
d1 = {'key1': 'value1', 'key2': 'value2'}

変数「l1」,「t1」,「d1」はそれぞれ list, tuple, dict型のになっており,複数の値を格納しています.

list, tuple, dictはそれぞれ「list[ ]」,「tuple ( )」,「dict { }」と別の括弧マークで表します.

さて,それぞれの違いはなんでしょうか.以下の表を見てみましょう.

ザックリした説明
list[1, 2, 3], [‘apple’, ‘banana’], [1, ‘A’]複数のデータを格納できる.要素の挿入や削除ができる
tuple(1,2,3), (‘apple’, ‘banana’), (1, ‘A’)複数のデータを格納できる.要素の書き換えができない
dict{‘key1’: 1, ‘key2’: 2}, {‘Japan’: ‘Tokyo’, ‘UK’: ‘London’}キーと値のペアとして複数のデータを格納する.

リストとタプルは非常に似ていますが,違いは要素の書き換えができるかどうかです.

List型について

リスト型のデータは以下のコードのようにリストの最後に別の値を追加したり,特定の要素を置き換えたりすることができます.リストの0から数えてn番目の要素には「list[n]」とすることでアクセスすることができます.わかりづらかったらコードを見てみましょう

## list 
l1 = [1, 2, 3]
l1.append(4)## l1の一番後ろに4を追加する
print(l1)
l1[2] = 100## l1の2番目(0から数えて)の要素を100に置き換える
print(l1)
'''
出力結果:
[1, 2, 3, 4]
[1, 2, 100, 4]
'''

注意したいのは,Pythonを含め多くのプログラミング言語では,要素の番号を数えるときに0, 1, 2, 3…のように0から数えます.なので以下のコードを見ればわかるとおり,「l1[2] = 100」では0から数えて2番目(すなわち1から数えれば3番目)の要素である3が100に置き換わっているのがわかると思います.これは慣れるまではわかりづらいかもしれませんが,よくわからない人は手を動かしてみて慣れてください.

以下,リストの基本的な操作をまとめました.

リスト[n]: 0から数えてn番目の要素にアクセス
リスト.append(新しい要素):リストに新しい要素を追加
リスト.remove(要素):リストから指定した要素を削除
len(リスト):リストの要素数を数える

下のコード例もどうぞ.

li2 = [0, 1, 2]
print(2)# 0から数えて2番目の要素にアクセス
li2.append(3)# 新しい要素3を追加
print(li2)
li2.remove(1)# リストから1を削除
print(li2)
print(len(li2))# len( )でリストの要素数を数える
'''
出力結果:
2
[0, 1, 2, 3]
[0, 2, 3]
3
'''

Tuple型について

一方でTuple型のデータは上でやったような他の要素を追加したり,特定の要素の値を置き換えることはできません.試しにタプルについて同じコードを書いてみてください.エラーが出てしまうはずです.

Dict型について

さてDict型の変数はListとTuple型のデータとは少し違い,値を「キー」と「バリュー」のペアで保存します.

ちなみに「dict」は「dictionary(辞書)」の略です.辞書では単語とその単語の意味がセットになっているように,dict型のデータはキーとバリューがセットになっているのです.

以下のコードではそれぞれ’apple’, ‘banana’, ‘peach’がキーとなっており,それに対応するバリューがその果物の色になっております.

## dict
d1 = {'apple':'red', 'banana':'yellow', 'peach':'pink'}
print(d1['apple'])
print(d1['banana'])
# print(d1['pink'])## error
'''
出力結果:
red
yellow
'''

上のコードのようにDict型の変数にキーを与えるとそれに対応するバリューを得ることができます.上の例では’apple’と’banana’に関して’red’, ‘yellow’が出力されます.

ここで気を付けなければならないのは,キー→バリューの流れであり,バリュー→キーとはならないことです.

上のコードの一番下にコメントアウトしてある「print(d1[‘pink’])」はキーではなくバリューを渡していますが,これではエラーが出てしまいます.

確認クイズ

クイズ1

以下のコードで出力される値を考えてみてください.考えたら実際にコードを書いてみて当たっているか確認してみましょう.

li = [3, 1, 4]
print(li[1])
li.append(5)
print(li)
li.remove(4)
print(li)

クイズ2

以下の2つのコードを実行しようとするとどちらともエラーが出ます.

どこでエラーが発生しているでしょう?

x = (1, 2, 3)
y = [1, 3, 4]
y.append(4)
x.append(2)
d1 = {'key1': 1, 'key2': 2, 'key3': 'three'}
d1['key1']
d1['three']

次回

次回は「条件分岐:if-else文と比較演算子,論理演算子」について学習します.

次の記事はこちら.

機械学習のためにしっかりとPythonを勉強したいなら,ある程度の基礎を身に着けた後に下の本を読むのがお勧めです.この本をこなせば,より高いレベルへ到達できるでしょう.

最新情報をチェックしよう!