sec02 - データ構造 [概要]
スポンサーリンク

データ構造とは

Pythonは、複数のデータを1つの変数で持てるような構造体が用意されています。例えば、list(リスト)という構造体は次のようにデータを保有することができます。

num_list = [1, 2, 3]

リストは複数のデータを要素番号[0]から順に並べて管理することができます。上記コードはシンプルな例になりますが、1, 2, 3の3つのデータを変数"num_list"で管理することができます。

『データ構造』セクションでは、listをはじめとする、Pythonに用意されている構造体について詳しく学習します。

このセクションで学ぶこと

このセクションでは次のデータ構造を学習します。

  1. list (リスト)
  2. tuple (タプル)
  3. dict (辞書型)
  4. set (集合)

上記の各データ構造に対し、『概要』『スライス』『編集』『メソッド』『コピー』を学習します。

詳しくは、各レクチャーで説明しますが、このページではそれぞれの特徴を紹介します。

スポンサーリンク

list (リスト)

list(リスト)は、先ほども少し触れましたが、複数のデータを要素番号順に管理するデータ構造です。listは、角カッコ[]内で各要素を定義します。

num_list = [1, 2, 3]

listの特徴は次の通りです。

  • 複数の値を順序付きで保存できる
  • あとから、要素の追加・変更・削除が可能
  • メリット: 柔軟性が高いこと
  • デメリット:要素数が多いと操作が遅くなる

tuple (タプル)

tuple(タプル)は、listと同じように複数のデータを順序付きで管理するデータ構造ですが、要素を追加・変更・削除ができないデータ構造です。tupleは、丸カッコ()内で各要素を定義します。

num_tuple = (1, 2, 3)

tupleの特徴は次の通りです。

  • 順序付きで値を保存し、作成後に変更できない
    • (Pythonでは、作成後に変更できないデータのことを『"イミュータブル"なオブジェクト』と言います)
  • メリット:安全性が高く、処理が速い
  • デメリット:値を変えられない

dict (辞書型)

dict(dictionary objectの略・辞書型/ディクショナリー)は、keyvalueを紐づけて管理するデータ構造です。dictのデータは{key: value}の形で定義します。

# 国と首都をdictで管理
capitals = {
    '日本': '東京',
    'アメリカ': 'ワシントンD.C.',
    'フランス': 'パリ',
    'ブラジル': 'ブラジリア'
}
# 首都を取得
capital_japan = capitals["日本"]
capital_france = capitals["フランス"]

print(capital_japan)   # 東京
print(capital_france)  # パリ

dictの特徴は次の通りです。

  • keyvalueをペアで保存し、キーから素早く値を検索できる
  • メリット:検索が速い
  • デメリット:キーの管理が必要

set (集合)

set(集合)は、重複しない値を集める構造で、順序はありません。

数学の授業で学習する集合と同じように、あるデータが集合の要素かどうかを調べたり、和集合, 積集合, 差集合, 対称差や、部分集合, 上位集合, 素集合を調べることができます。

setは、波カッコ{}内で各要素を定義します。

num_set = {1, 2, 3}

setの特徴は次の通りです。

  • 重複しない値を集める構造で、順序はない
  • メリット:重複排除や集合演算が速い
  • デメリット:要素の順番が保証されない
  • 使いどころ:重複チェックや集合計算
スポンサーリンク