1
1

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でデータを扱う際、よく忘れるので、自分用にまとめです。
今回は、リスト、タプル、辞書の違いについてまとめます。

リスト、タプル、辞書の違い

ざっくりと書くと、以下の通り。

特徴 リスト タプル 辞書
データ構造 順序付けられたデータの集まり 順序付けられたデータの集まり キーと値のペア
順序の保持 ○ (Python3.7以降)
× (Python3.6以前)
変更 不可
メモリ効率 タプルと比較してわずかに不利 リストと比較してわずかに有利 キーの重複がないため、リストやタプルと比較して効率が良い場合がある
主な用途 データの順番が重要な場合
動的なデータ操作が必要な場合
変更不可であることを保証したいデータ
辞書のキー
データに名前を付けて管理したい場合
キーによる高速な検索が必要な場合

以下では、これらのデータ構造について、より詳細に解説していきます。

1. リスト:柔軟なデータ操作を実現

リストは、要素と呼ばれるデータの列を保持するために使用されます。
リストの特徴は、要素の追加、削除、変更といった操作を自由に行える点。
特に、プログラムの実行中にデータの内容が変化する場合に便利。

# リストの作成
shopping_list = ["apple", "banana", "milk"]

# 要素へのアクセス
print(shopping_list[0])# 出力: apple

# 要素の追加
shopping_list.append("eggs")
print(shopping_list)  # 出力: ['apple', 'banana', 'milk', 'eggs']

# 要素の変更
shopping_list[1] = "orange"
print(shopping_list)  # 出力: ['apple', 'orange', 'milk', 'eggs']

# 要素の削除
del shopping_list[2]
print(shopping_list)  # 出力: ['apple', 'orange', 'eggs']

# 一部分だけを取り出す
print(shopping_list[1:3])  # 出力: ['orange', 'eggs']

メリット:

  • データ操作の柔軟性が高い
  • 部分的なデータへのアクセスが容易

注意点:

  • データの変更が可能であるということは、意図しない変更が発生するリスクもある
  • タプルと比較すると、メモリ使用量や処理速度の面でわずかに不利になる場合がある(らしい)

2. タプル:一度決めたら変更不要なデータに最適

タプルもリストと同様に、順序付けられたデータの集まりを扱います。
リストとの大きな違いは、一度作成したデータの内容を変更できない点。
これは、プログラムの実行中にデータの内容が変わらないことが保証したい場合に便利。

# タプルの作成
coordinate = (10, 20)

# 要素へのアクセス
print(coordinate[0])  # 出力: 10

# 要素の変更はできません (エラー発生)
# coordinate[1] = 30 

# データを個別に受け取る
x, y = coordinate
print(x, y)  # 出力: 10 20

メリット:

  • データの変更を防ぎ、安全性を高める
  • 辞書のキーとして使用可能
  • リストと比較して、メモリ使用量や処理速度の面でわずかに有利になる場合がある(らしい)

注意点:

  • データの内容を変更できないため、柔軟性に欠けるという側面あり

3. 辞書:名前でアクセスするデータ管理を実現

辞書は、キーと値の組み合わせでデータを管理します。
キーを用いることで、目的のデータにすばやくアクセスできます。
これは、大量のデータの中から特定のデータを探し出す必要がある場合に非常に便利。

# 辞書の作成
user = {"name": "Alice", "age": 30, "city": "New York"}

# キーによる値へのアクセス
print(user["name"])  # 出力: Alice

# 要素の追加
user["occupation"] = "engineer"
print(user)  # 出力: {'name': 'Alice', 'age': 30, 'city': 'New York', 'occupation': 'engineer'}

# 要素の変更
user["city"] = "London"
print(user)  # 出力: {'name': 'Alice', 'age': 30, 'city': 'London', 'occupation': 'engineer'}

# 要素の削除
del user["age"]
print(user)  # 出力: {'name': 'Alice', 'city': 'London', 'occupation': 'engineer'}

メリット:

  • キーによる高速なデータアクセス
  • データの追加、削除、変更が可能

注意点:

  • Python3.6以前は、データの順番は保持されないため、順番が重要な場合はリストやタプルを使う必要がある
  • Python3.7以降は、データの順序は保持される。

まとめ

どのデータ構造を選ぶかは、目的や状況によって異なります。

  • 柔軟なデータ操作が必要な場合は リスト
  • データの安全性を重視する場合は タプル
  • キーによる高速なデータアクセスが必要な場合は 辞書

それぞれの特性を理解した上で使い分けることで、より効率的で安全なPythonプログラムを作成しましょう!

1
1
2

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?