0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonリスキリング:基本データ構造まとめ

Last updated at Posted at 2025-08-02

はじめに

本記事では、Pythonの基本的なデータ構造について、実際のコードや使い分けの観点を交えてまとめています。
「なぜ listappend() なのに setadd() なのか?」といった素朴な疑問にも答えます。


📦 Pythonの基本データ構造一覧

データ構造 説明 特徴 主な用途
list(リスト) 順序ありの配列 重複OK、変更可 [1, 2, 3] 順番通りのデータ保持
tuple(タプル) 順序ありの配列(変更不可) 重複OK、変更不可 (1, 2, 3) 定数の集まり、辞書のキーなど
set(集合) 順序なし、重複なし 重複NG、変更可 {1, 2, 3} 重複排除、集合演算
dict(辞書) キーと値のペア 順序あり(Python 3.7以降) {"a": 1, "b": 2} データのマッピング
deque(双方向キュー) 両端から操作可能なリスト 高速なpop/append操作 deque([1, 2, 3]) スタック・キュー実装

🧠 メソッドの違い:append()add()

# listの場合
l = []
l.append(1)  # OK

# setの場合
s = set()
s.add(1)     # OK
# s.append(2)  # エラー: 'set' object has no attribute 'append'
  • list.append():順序を持った末尾に追加(重複OK)
    • append は「後ろにくっつける」という英語の意味
  • set.add():集合に追加(重複NG)
    • setは順序なし・重複なし
    • 要素を「どこに」追加するかは意味を持たず、集合に「含まれるか否か」が重要
    • add は 「集合に要素を加える」 という英語の一般的な意味

🧰 スタックとキューの実装

スタック(後入れ先出し)

stack = []
stack.append(10)
stack.append(20)
print(stack.pop())  # 20

キュー(先入れ先出し)

from collections import deque
queue = deque()
queue.append(10)
queue.append(20)
print(queue.popleft())  # 10

🎯 演習問題と解法

問題:リストから重複を除き、元の順序を保ったまま出力せよ

入力例

words = ["apple", "banana", "apple", "orange", "banana"]

出力例

["apple", "banana", "orange"]

解法1:set + listで順序保持

def filter_unique(seq):
    seen = set()
    result = []
    for item in seq:
        if item not in seen:
            result.append(item)
            seen.add(item)
    return result

words = ["apple", "banana", "apple", "orange", "banana"]
print(filter_unique(words))

🧵 まとめ:どれを使うべきか?

目的 選ぶ構造
順序付き+重複あり list
順序付き+変更不可 tuple
重複なし set
キーと値の組み合わせ dict
高速なpop/append deque

🔚 おわりに

本記事ではPythonのデータ構造の基本と使い分けについて解説しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?