【Pythonデータ構造】リスト(List)・タプル(Tuple)・辞書(Dict)の概要まとめ

スポンサーリンク

重要度:★★★★

Pythonではデータを効率的に管理するために主として3つのデータ構造(「リスト」「タプル」「辞書」)が用意されています。Pythonプログラミングにおいてこれらデータ構造の理解は何よりも重要です。

図1. Pythonのデータ構造

本記事では、これら3つのデータ構造についての概要についてまとめます。また、それぞれのデータ構造の違いについても触れます。各詳細については、リンク先の個別の記事を参照して下さい。

1. リスト<List>

[要素1, 要素2, ・・・] のように、”[]”(角カッコ)の中に要素が“,”(カンマ)区切りで並びます。リストは、「ミュータブル(mutable)」なデータ構造で、要素の追加・更新・削除を自由に行うことができます。

他言語の配列に近い扱い方がありますが、次のような違いがあります。

他言語の配列との違い
  • 要素には、さまざまなデータ型(整数、文字列など)を混在することができる
  • C言語のようにメモリアドレスを強く意識しない

リストの書式と基本的な使い方は次の通りです。

リストの書式(1)_rev0.2
図2. リストの書式
# []を使ったリスト作成の基本

# 要素が整数の場合
numbers = [4, 8, 15, 16, 23, 42]
print(numbers)
# ➀>> [4, 8, 15, 16, 23, 42]

# 要素が文字列の場合
colors = ["red", "green", 'blue']
print(colors)
# ➁>> ['red', 'green', 'blue']

# 要素が整数と文字列、ブール値の混在
mixture = [1, 2, 3, "a", "b", "c", True, False]
print(mixture)
# ➂>> [1, 2, 3, 'a', 'b', 'c', True, False]

その他の詳細については、以下の関連記事を参照してください。

  • リストの生成・参照と更新について
  • 多次元リストについて
  • リストの連結と比較

リストオブジェクトには、その操作を効率的におこなうために、関連メソッドや関数が用意されています。主たるものを厳選して、以下の記事にまとめています。

  • リストに要素を追加する
  • リストから特定の要素を抜き取る(削除する)
  • 要素を並び替える
  • 特定の要素を探索・調査する ・・・

2. タプル<Tuple>

Python_基本文法_内包表記

(要素1, 要素2, ・・・) のように、”()”(カッコ)の中に要素が“,”(カンマ)区切りで並びます。

タプルは、リストと類似していますが「イミュータブル(imutable)」なデータ構造となります。つまり、リストのように一度定義したタプルは、要素の追加・更新・削除を行うことができません。

リストとの違いは次のようなものがあります。

リストとの違い
  • イミュータブルで要素の追加・更新・削除ができない
  • リストよりも、生成速度が速く、メモリーの使用量が小さくて済む

タプルの書式と基本的な使い方は次の通りです。

タプルの書式_rev0.1
図3. タプルの書式
# <タプルの定義1>
# 数値や文字列を要素に指定した例

# 文字(列)
print( ('a', 'b') )             # ➀>> ('a', 'b')
# 数値
print( (123, 456) )             # ➁>> (123, 456)
# 文字列+数値の混載
print( ('a', 123) )             # ➂>> ('a', 123)

#-----------------------------------------------------------------------------
# <タプルの定義2>
# 要素には、リストやタプルを指定した例

# "リスト"を要素にする
print( ([10, 20], [30, 40]) )         # ➄>> ([10, 20], [30, 40])

# "タプル"を要素にする(ネスト構造)
print( ((10, 20), (30, 40)) )         # ➃>> ((10, 20), (30, 40))

# さまざまなオブジェクトを混載
print( (10, 20, [30, 40], 'abc') )    # ➅>> (10, 20, [30, 40], 'abc')

その他の詳細については、以下の関連記事を参照してください。

  • タプルの基本と定義の仕方
  • 各要素へのアクセス方法(参照・取得・更新)について
  • タプルオブジェクトが提供するメソッドや関数など

3. 辞書<Dict>

{key1:value1, key2:value2,} のように、“{}”(中カッコ)の中に、「キー:値」を1組とする要素が“,”(カンマ)区切りで並びます。辞書もリスト同様に「ミュータブル(mutable)」なデータ構造で、要素の追加・更新・削除が自由に行えます。リストやタプルとの違いは次のようなものがあります。

リストとの違い
  • 要素の並び順を意識することはない(キーを識別子として各要素にアクセスする)
  • 同じキーを重複させることはできない(値は重複できる)

辞書の書式と基本的な使い方は次の通りです。

Python_辞書オブジェクトの特徴_rev0.1
図4. 辞書オブジェクトの基本構文
dict1 = {'a':1, 'b':2, 'c':3}                     # キーに文字列を指定
dict2 = {10:'apple', 20:'orange', 30:'pine'}      # キーに数字を指定
dict3 = {(1, 2, 3):'apple'}                       # キーにタプル(イミュータブル)を指定

# -----------------------------------------------------------------------------------

print(dict1)                      # ➀>> {'a': 1, 'b': 2, 'c': 3}
print(type(dict1))                # >> <class 'dict'>

print(dict2)                      # ➁>> {10: 'apple', 20: 'orange', 30: 'pine'}
print(type(dict2))                # >> <class 'dict'>

print(dict3)                      # ➂>> {(1, 2, 3): 'apple'}
print(type(dict3))                # >> <class 'dict'>

その他の詳細については、以下の関連記事を参照してください。

  • 辞書の基本と定義の仕方
  • 各要素へのアクセス方法(参照・取得・更新)について
  • 辞書オブジェクトが提供するメソッドや関数など
タイトルとURLをコピーしました