重要度:★★★★★
Pythonではデータを効率的に管理するために主として3つのデータ構造(「リスト」「タプル」「辞書」)が用意されています。Pythonプログラミングにおいてこれらデータ構造の理解は何よりも重要です。
本記事では、これら3つのデータ構造についての概要についてまとめます。また、それぞれのデータ構造の違いについても触れます。各詳細については、リンク先の個別の記事を参照して下さい。
1. リスト<List>
[要素1, 要素2, ・・・] のように、”[]”(角カッコ)の中に要素が“,”(カンマ)区切りで並びます。リストは、「ミュータブル(mutable)」なデータ構造で、要素の追加・更新・削除を自由に行うことができます。
他言語の配列に近い扱い方がありますが、次のような違いがあります。
リストの書式と基本的な使い方は次の通りです。
# []を使ったリスト作成の基本
# 要素が整数の場合
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>
(要素1, 要素2, ・・・) のように、”()”(カッコ)の中に要素が“,”(カンマ)区切りで並びます。
タプルは、リストと類似していますが「イミュータブル(imutable)」なデータ構造となります。つまり、リストのように一度定義したタプルは、要素の追加・更新・削除を行うことができません。
リストとの違いは次のようなものがあります。
タプルの書式と基本的な使い方は次の通りです。
# <タプルの定義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)」なデータ構造で、要素の追加・更新・削除が自由に行えます。リストやタプルとの違いは次のようなものがあります。
辞書の書式と基本的な使い方は次の通りです。
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'>
その他の詳細については、以下の関連記事を参照してください。
- 辞書の基本と定義の仕方
- 各要素へのアクセス方法(参照・取得・更新)について
- 辞書オブジェクトが提供するメソッドや関数など