初心者のための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を勉強したいなら,ある程度の基礎を身に着けた後に下の本を読むのがお勧めです.この本をこなせば,より高いレベルへ到達できるでしょう.

必ずしも必要ではありませんが,独学がどうしても苦手で,いつもどこかで詰まってしまったり,勉強が続かない方はプログラミングスクールへ登録して,わからないことがあったらすぐに人に質問をできる環境で勉強するという手もあります.

Tech Academyは時間がない方でもオンラインで完結する受講携帯で質問もできます.

手っ取り早く短期間で集中してPythonを勉強したい方はプログラミングスクールも考えてみてはいかがでしょうか.

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