【Python入門】データ構造(リスト・タプル・辞書)

Python

1.データ構造とは

Python では複数のデータを まとめて管理するための“入れ物(コレクション)” が用意されています。代表的なものは次の3つです:

  • リスト(list) … 変更できる
  • タプル(tuple) … 変更できない
  • 辞書(dict) … 「キー:値」のセットで管理する

これらは Python の基礎から応用まで、あらゆる場面で使われます。

2.リスト(list

リストは 複数の値を順番に並べた“可変”のデータ構造 です。

✔ リストの作り方

「=」までは変数と同じように記載して、そのあとに[]をつけて、中にカンマ区切りで要素を入れる。

numbers = [1, 2, 3, 4]
fruits = ["apple", "banana", "orange"]
mixed = [1, "text", True]

✔ 要素の取り出し(インデックス)

リスト名[インデックス]で要素を指定する。なお、0スタート

fruits = ["apple", "banana", "orange"]
print(fruits[0])   # apple
print(fruits[1])   # banana

最後の要素は「-1」で表す。

print(fruits[-1])  # orange

✔ 要素の変更

fruits[1] = "grape"

✔ 要素の追加・削除

fruits.append("melon")     # 末尾に追加
fruits.insert(1, "pear")   # 指定位置に追加
fruits.remove("apple")     # 値を削除
fruits.pop(0)              # インデックスで削除

✔ 長さを調べる

len(fruits)

✔ ループで取り出す

forで指定した変数(f)にリスト(fruits)の要素を一周ごとに入れ替えてリストの要素がなくなったら終了するイメージ。

for f in fruits:
    print(f)

3.タプル(tuple)

タプルは、リストとほぼ同じだが 後から値を変更できない のが特徴。

✔ タプルの作り方

colors = ("red", "green", "blue")

1つだけのタプルは注意:

single = (1,)   # 最後にカンマが必要

✔ タプルを使う場面

  • 定数の集合
  • 関数の戻り値に複数値を返すとき
  • 要素を誤って変更されたくないとき

<例>

def get_point():
    return (5, 10)
x, y = get_point()   #get_point関数の返却したリストのそれぞれの要素をx,yに入れている 

4.辞書(dict)

辞書は 「キー → 値」 のペアで情報を管理します。
高速で値を取得できるため、とても強力で、Python の学習の中盤以降で頻繁に登場します。

✔ 辞書の作り方

要素を囲むのは{}。{キー:値,キー:値,}のように入れていく。

person = {"name": "Alice", "age": 20}

✔ 値の取り出し

[キー]で指定する。

print(person["name"])  # Alice
print(person["age"])   # 20

✔ 値の変更・追加・削除

変更したいときは今あるキーを指定、追加したいときはまだ作成されていないキーを指定、削除は「del」を先頭につけてキーを指定。

person["age"] = 21              # 変更
person["city"] = "Tokyo"        # 追加
del person["name"]              # 削除

✔ キー・値・ペアの一覧を取得

person.keys()     #キーだけ取得
person.values()  #値だけ取得
person.items()    #ペアで取得

ループで取り出す:

for key, value in person.items():
    print(key, value)

5.データ構造の比較(入門向け)

データ型変更可能中身の構造代表的な用途
list順番に並んだデータなんでも使える万能型
tuple×順番に並んだデータ定数 / 関数の戻り値
dictキーと値のセット設定 / JSON / 検索

6.実践例

✔ 辞書リスト(現実のデータに近い)

ユーザーの名前と年齢を1行ずつ表示。

users = [
    {"name": "Alice", "age": 20},
    {"name": "Bob", "age": 25},
]
for user in users:
    print(user["name"], user["age"])

✔ リストを使って合計を求める

nums = [10, 20, 30]
total = sum(nums)
print(total)  # 60

✔ タプルで座標を表す

pos = (10, 20)
x, y = pos
print(x, y) #10,20
タイトルとURLをコピーしました