Site icon imageTomoMemo.dev

Memo on programming. Provided by Tomo with passion.

Pythonのデータ構造4選

Icon in a callout block
Python 100Days Challenge Day8

Pythonで使われる4つのデータ構造についてまとめていく。

データを入れる「箱」という概念を前提に書いていく。

リスト

たくさんのアイテム(もの)を順番に並べて入れておける「箱」というイメージでOK。この箱は、あとからアイテムを追加したり、取り出したり、並べ替えたりすることができる。

# リストの作成
fruits = ["apple", "banana", "cherry"]
print(f"初期リスト: {fruits}")

# 要素の追加
fruits.append("orange")
print(f"要素追加後: {fruits}")

# 要素の削除
fruits.append("banana")
print(f"要素追加後: {fruits}")

# スライス
# インデックス1から2までの要素を取得する
subset = fruits[1:3]
print(f"スライス結果: {subset}")

タプル

タプルは、一度決めたら変えられないアイテム(もの)を順番に並べて入れておける「箱」です。だから、大切な情報や変わってほしくないデータを入れておくのに便利(だと思う。執筆時点では、まだつかったことがないから何とも言えない)。

# タプルの作成
person = ("Ken Tanaka", 20, "Backend Developer")
print(f"タプル: {person}")

# 要素へアクセスする
name = person[0]
age = person[1]
profession = person[2]
print(f"名前: {name}, 年齢: {age}, 職業: {profession}")

辞書

辞書はキーと値のペアを格納するデータ構造になってる。キーによって値にアクセスできる。

# 辞書を作成する
employee = {"name": "Ken Tanaka", "age": 20, "department": "Product Develop"}
print(f"初期辞書: {employee}")

>
初期辞書: {'name': 'Ken Tanaka', 'age': 20, 'department': 'Product Develop'}


# キーと値の追加
employee["salary"] = 5000
print(f"キーと値の追加後: {employee}")

>
キーと値の追加後: {'name': 'Ken Tanaka', 'age': 20, 'department': 'Product Develop', 'salary': 5000}


# キーと値の削除
del employee["age"]
print(f"キーと値の削除後: {employee}")

> 
キーと値の削除後: {'name': 'Ken Tanaka', 'department': 'Product Develop', 'salary': 5000}

これはよく使われるので解説。

辞書はKeyとvalueのペアを使ってデータを管理する。これを使えばキーを指定するだけで対応する値を簡単に取り出すことができる。

集合

集合は、同じアイテムを二回入れることができない「箱」。この箱の中ではアイテム同士を比べたり、共通のアイテムを見つけたりすることができる。

# 集合の作成
skills = {"Python", "Java", "C++"}
print(f"初期集合: {skills}")

# 要素の追加
skills.add("SQL")
print(f"要素追加後: {skills}")

# 要素の削除
skills.remove("Java")
print(f"要素削除後: {skills}")

# 集合演算
additional_skills = {"HTML", "CSS", "Python"}
all_skills = skills.union(additional_skills)  # 和集合
common_skills = skills.intersection(additional_skills)  # 積集合
print(f"和集合: {all_skills}")
print(f"積集合: {common_skills}")

Memo on programming by Tomo.

Powered by Tomo with passion.