💡 この記事でわかること
- リスト・辞書とは何か、どう使い分けるのか
- リストの作り方と、インデックス・スライスでの取り出し方
- append・insert・remove・pop など、リストの要素を追加・削除する方法
- 辞書のキーと値の扱い方、get() での安全な取り出し
- for文でリスト・辞書を1つずつ処理する方法
1. リスト・辞書とは?
リストと辞書は、
👉 複数の値をまとめて1つの変数で扱うためのデータ構造です。
- リスト(list):値を順番に並べて管理する。
[ ]で書く - 辞書(dict):値を「キー(名前)」と「値」のペアで管理する。
{ }で書く
# リスト:3人の名前を順番に並べる
names = ["太郎", "花子", "次郎"]
# 辞書:1人の情報を項目名つきで持つ
user = {"name": "太郎", "age": 20}💡 「同じ種類のものを並べたい」ならリスト、「1件のデータに名前つきの項目を持たせたい」なら辞書、と考えると使い分けやすいです。
👉 Pythonの基本的なデータ型(文字列・数値・真偽値)についての記事はこちら
2. リストの作り方と取り出し方
リストは[ ]の中に、値をカンマ区切りで並べて作ります。要素は0から始まる番号(インデックス)で取り出します。
fruits = ["りんご", "みかん", "ぶどう"]
print(fruits[0]) # りんご(1番目)
print(fruits[2]) # ぶどう(3番目)
print(fruits[-1]) # ぶどう(うしろから1番目)
fruits[1] = "もも" # 2番目を書き換える
print(fruits) # ['りんご', 'もも', 'ぶどう']👉 先頭は[0]、末尾は[-1]で取り出せます。存在しない番号(例:要素が3つなのに[5])を指定するとIndexErrorになります。
スライスで範囲を取り出す
nums = [10, 20, 30, 40, 50]
print(nums[1:3]) # [20, 30](1番目から3番目の手前まで)
print(nums[:2]) # [10, 20](先頭から)
print(nums[3:]) # [40, 50](3番目から最後まで)💡 [開始:終了]と書くと、開始番号から「終了番号の1つ手前」までを取り出します。終了番号自体は含まれない点に注意してください。
3. リストの要素を追加・削除する
tasks = ["買い物", "掃除"]
tasks.append("洗濯") # 末尾に追加 → ['買い物', '掃除', '洗濯']
tasks.insert(0, "朝食") # 位置を指定して追加 → ['朝食', '買い物', '掃除', '洗濯']
tasks.remove("掃除") # 値を指定して削除
last = tasks.pop() # 末尾を取り出して削除(lastに '洗濯' が入る)
print(len(tasks)) # 2(要素数)
print("朝食" in tasks) # True(含まれているか)append(値):末尾に1つ追加するinsert(位置, 値):指定した位置に追加するremove(値):その値を持つ最初の要素を削除するpop():末尾の要素を取り出して削除する(pop(0)で先頭)len(リスト):要素の数を数える
4. for文でリストを1つずつ処理する
fruits = ["りんご", "みかん", "ぶどう"]
for fruit in fruits:
print(fruit)
# 番号もいっしょに使いたいときは enumerate()
for i, fruit in enumerate(fruits):
print(i, fruit) # 0 りんご / 1 みかん / 2 ぶどう👉 リストとfor文はセットでよく使います。for文の基本的な書き方は、こちらの記事で解説しています。
👉 Pythonのif文・for文・while文についての記事はこちら
5. 辞書の作り方と取り出し方
辞書は{ }の中にキー: 値のペアをカンマ区切りで並べて作ります。値を取り出すときは、番号ではなくキーを指定します。
user = {"name": "太郎", "age": 20}
print(user["name"]) # 太郎
print(user["age"]) # 20👉 存在しないキーをuser["email"]のように指定するとKeyErrorになります。キーがあるか分からないときは、次のget()を使うと安全です。
print(user.get("email")) # None(エラーにならない)
print(user.get("email", "未登録")) # 未登録(見つからないときの値を指定)6. 辞書の値を追加・変更・削除する
user = {"name": "太郎", "age": 20}
user["age"] = 21 # 既存のキー → 値を変更
user["email"] = "taro@example.com" # 新しいキー → 追加
del user["age"] # キーごと削除
print("name" in user) # True(キーがあるか調べる)
print(user) # {'name': '太郎', 'email': 'taro@example.com'}💡 辞書[キー] = 値は、キーが既にあれば「変更」、なければ「追加」になります。同じ書き方で両方できると覚えておくと分かりやすいです。
7. for文で辞書を処理する
scores = {"国語": 80, "数学": 65, "英語": 90}
# キーと値の両方を取り出す(items())
for subject, score in scores.items():
print(subject, score)
# キーだけ / 値だけ
print(list(scores.keys())) # ['国語', '数学', '英語']
print(list(scores.values())) # [80, 65, 90]👉 辞書をfor文で回すときは.items()を使い、キーと値を同時に受け取るのが基本形です。
8. リストと辞書を組み合わせる
実際のプログラムでは、「辞書をリストに並べる」形がよく登場します。例えば「複数人のユーザー情報」は次のように表せます。
users = [
{"name": "太郎", "age": 20},
{"name": "花子", "age": 25},
{"name": "次郎", "age": 18},
]
for u in users:
print(u["name"], "さん", u["age"], "歳")
# 太郎 さん 20 歳
# 花子 さん 25 歳
# 次郎 さん 18 歳💡 この「辞書のリスト」は、CSVファイルやWeb APIから受け取るデータの形とほぼ同じです。リストと辞書を組み合わせて扱えるようになると、実務のデータ処理にそのままつながります。
9. データ構造 早見表
| 種類 | 書き方 | 特徴 | 取り出し方 |
|---|---|---|---|
| リスト(list) | [1, 2, 3] | 順番がある。あとから変更できる | 番号(インデックス) |
| 辞書(dict) | {"key": "値"} | キーと値のペア。名前で管理する | キー |
| タプル(tuple) | (1, 2, 3) | リストに似ているが変更できない | 番号(インデックス) |
| セット(set) | {1, 2, 3} | 重複なし・順番なし | (順不同・in で判定) |
👉 まずはリストと辞書の2つを押さえれば十分です。タプルとセットは、必要になったときに調べれば問題ありません。
10. まとめ
- リスト:
[ ]で作り、番号([0]、[-1])やスライス([1:3])で取り出す - リストの操作:
append・insert・remove・pop・len - 辞書:
{ }でキー: 値を書き、キーで取り出す。get()ならキーがなくてもエラーにならない - 辞書のfor文は
.items()でキーと値を同時に受け取る - 「辞書のリスト」は実務データの基本形
👉 リストと辞書は、これから書くほとんどのプログラムで登場します。小さなデータで実際に追加・取り出し・繰り返しを試しながら、操作に慣れていきましょう。