【Python】レッスン4-08:4種類のデータ構造の概要と違いまとめ

一つ前のLessonではリストの内包表記について学習しました。
今回は4つのデータ構造の概要について見ていきましょう。
Lesson1:基礎文法編
Lesson2:制御構造編
Lesson3:関数とスコープ編
Lesson4:データ構造編
・Lesson4-1:リストの定義と要素の追加を理解しよう
・Lesson4-2:リストの要素を削除しよう
・Lesson4-3:リストの情報を調べよう
・Lesson4-4:リストの集計・並べ替えを理解しよう
・Lesson4-5:リストのスライスを理解しよう
・Lesson4-6:リストのループ処理を理解しよう
・Lesson4-7:リストの内包表記を理解しよう
・Lesson4-8:4つのデータ構造の概要と違いを理解しよう ◁今回はココ
・Lesson4-9:タプルの基本を理解しよう
・Lesson4-10:タプルのアンパックを理解しよう
・Lesson4-11:辞書の基本を理解しよう
・Lesson4-12:辞書のループ処理を理解しよう
・Lesson4-13:辞書の内包表記を使ってリストから辞書を作ろう
・Lesson4-13:集合(セット)の基本を理解しよう
・練習問題4-1:宝探しゲームを作ろう
・練習問題4-2:ナインゲームを作ろう
・練習問題4-3:マルバツゲームを作ろう
Lesson5:オブジェクト指向編
次のステップ:Python基礎習得者にお勧めの道5選(実務or副業)
4つのデータ構造を一望|特徴・違い・選び方ガイド
この章ではPythonにおける「データ構造」の種類や概要・違いを学習します。
Pythonには、これまで学習してきたリスト以外にも、データを効率的に管理・操作できるデータ構造が複数用意されています。
特にリスト、タプル、辞書、集合の4つは日常的に使われる基本的なデータ構造です。
それぞれの細かい特徴や使い方は別の記事で紹介しますが、この記事で全体の概要を掴んでおくと、のちの学習がスムーズに進みます。
リスト(List)とは|順序あり、変更可能なデータ構造
リストは角括[]
を使って定義します。
リスト内の要素はカンマ「,
」で区切り、任意のデータ型を含めることができます。
変数名 = [要素1, 要素2, 要素3]
リストの使用例は以下の通り。
fruits = ['apple', 'banana', 'cherry']
タプル(Tuple)とは|順序あり、変更不可のデータ構造
タプルは丸括弧()
を使って定義します。
リストとは異なりタプルの要素は一度決めると変更できません。
変数名 = (要素1, 要素2, 要素3)
タプルの使用例は以下の通り。
dimensions = (1920, 1080)
辞書(Dictionary)とは|キーと値のペアを持つデータ構造
辞書は波括弧{}
を使って定義し、キーと値のペアを保持します。
キーと値はコロン「:
」で区切られ、複数のペアはカンマ「,
」で区切ります。キーは文字列や数値であり、値は任意のデータ型を持つことができます。
変数名 = {キー1: 値1, キー2: 値2}
辞書の使用例は以下の通り。
person = {'name': 'Alice', 'age': 30, 'city': 'Tokyo'}
集合(Set)とは|順序なし、重複なしのデータ構造
集合は波括弧{}
を使って定義しますが、辞書とは違い要素は重複しません。
集合の要素は順序を持たないため、順序に依存した操作はできません。
変数名 = {要素1, 要素2, 要素3}
集合の使用例は以下の通り。
fruits_set = {'apple', 'banana', 'cherry'}
リスト・タプル・辞書・集合の特徴と違い一覧
以下に、これら4つのデータ構造の特徴と違いをまとめた表を示します。
構造 | 順序 | 書き換え | 重複の許可 | 定義方法 |
---|---|---|---|---|
リスト | あり | 可能 | 可能 | [要素1, 要素2] |
タプル | あり | 不可能 | 可能 | (要素1, 要素2) |
辞書 | なし | 可能 | キーは不可 値は可 | {キー1: 値1,キー2: 値2} |
集合 | なし | 可能 | 不可 | {要素1, 要素2} |
まだ詳細学習前の段階でこの表を見てもピンとこないかもしれません。
この表の違いを端的に表したコードを用意しましたのでこちらを確認してください。
# リストを使って、順序を持ち変更可能なフルーツのリストを作成 fruits = ['apple', 'banana', 'cherry'] fruits.append('orange') # 'orange'を追加 fruits.remove('apple') # 'apple'を削除 print("リスト:", fruits) # 出力: ['banana', 'cherry', 'orange'] # タプルを使って、変更できない(immutable)要素を作成 number = (100, 200) # number[0] = 300 ← この部分をコメントではなくすとエラーが発生します print("タプル:", number) # 出力: (100, 200) # 辞書を使って、名前や年齢などの個人情報をキーを使って管理 person = {'name': 'Alice', 'age': 30, 'city': 'Tokyo'} print("辞書:", person['name']) # 出力: 'Alice' # 集合を使って、AグループとBグループの両方に属している人を表示 A_group = {'太郎', '次郎', '三郎'} B_group = {'太郎', '三郎', '四郎'} common_members = A_group & B_group # AとBの両方に属している人(積集合) print("集合(両方のグループに属している人):", common_members) # 出力: {'太郎', '三郎'}
このコードを実行すると以下のように出力されます。
リスト: ['banana', 'cherry', 'orange'] タプル: (100, 200) Alice 集合(両方のグループに属している人): {'太郎', '三郎'}
このように、それぞれのデータ構造には特色があり、使い分けることでより柔軟なコードが書けるようになります。
今後のレッスンでタプル、辞書、集合について詳しく学習しますが、それぞれの違いが分からなくなった時、この記事に戻ってきて確認して下さい。
- サイト改善アンケート|ご意見をお聞かせください(1分で終わります)
-
本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの「プログラミングを学習する理由」などをアンケート形式でお伺いしています。1分だけ、ご協力いただけますと幸いです。
【Python】サイト改善アンケート
FAQ|Pythonのデータ構造の基本
- Q1. Pythonのリストと辞書はどう使い分けるべきですか?
-
リストは順序のあるデータの集まりを扱うのに最適です。一方、辞書はキーと値のペアで構造化された情報を管理する際に使います。使いたい情報の構造に応じて選択しましょう。
- Q2. タプルとリストはどちらが高速ですか?
-
一般にタプルの方が軽量かつ高速です。特に変更の必要がないデータを扱う場合は、リストよりタプルが推奨されます。