メインコンテンツへスキップ
Lesson1 / 8

リストの基本 - 複数のデータをまとめて管理

目次

このレッスンで学ぶこと

  • リストとは何か
  • リストの作成方法
  • リストの基本操作
  • リストの特徴と用途

リストとは

リストは、複数の値を順序付けて格納するデータ構造です。Pythonで最も基本的で使用頻度の高い機能の一つです。

項目説明
表記法[要素1, 要素2, 要素3, ...]
<class 'list'>
変更可能はい(ミュータブル)
順序保持する

主な特徴:

  • 複数のデータを1つの変数でまとめて管理できる
  • 整数、文字列、浮動小数点数など異なる型を混在させることができる
  • インデックスは0から始まる
  • ループで効率的に処理できる

簡単なコード例:

Python
# リストの作成
fruits = ["りんご", "バナナ", "オレンジ"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "Python", 3.14, True]

# リストの表示
print(fruits)
print(numbers)

実行結果:

['りんご', 'バナナ', 'オレンジ']
[1, 2, 3, 4, 5]

なぜリストが必要なのか?

プログラミングでは、複数の関連するデータをまとめて扱いたいことがよくあります。

Python
# リストを使わない場合(非効率)
student1 = "田中"
student2 = "佐藤"
student3 = "鈴木"
student4 = "高橋"
student5 = "伊藤"

# リストを使う場合(効率的)
students = ["田中", "佐藤", "鈴木", "高橋", "伊藤"]

リストを使うことで、複数のデータを1つの変数でまとめて管理できます。

💡 豆知識: リストは他のプログラミング言語では「配列(Array)」と呼ばれることが多いです。Pythonのリストは非常に柔軟で、異なる型のデータを混在させることもできます。


リストの作成

空のリストを作る

Python
# 空のリスト(2つの方法)
empty_list1 = []
empty_list2 = list()

print(empty_list1)
print(empty_list2)

実行結果:

[]
[]

いろいろなリスト

Python
# 数値のリスト
numbers = [1, 2, 3, 4, 5]
print(numbers)

# 文字列のリスト
fruits = ["りんご", "バナナ", "オレンジ"]
print(fruits)

# 混合型のリスト
mixed = [1, "Python", 3.14, True]
print(mixed)

# リストのリスト(2次元リスト)
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix)

実行結果:

[1, 2, 3, 4, 5]
['りんご', 'バナナ', 'オレンジ']
[1, 'Python', 3.14, True]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

リストの基本操作

長さの取得

機能: リストに含まれる要素の数を取得します。

書き方:

Python
len(リスト)

用途: 要素数の確認、ループの範囲指定、空判定

注意点: 空のリストの長さは0

Python
fruits = ["りんご", "バナナ", "オレンジ"]
print(f"要素数: {len(fruits)}")

empty = []
print(f"空リストの長さ: {len(empty)}")

実行結果:

要素数: 3
空リストの長さ: 0

要素の存在チェック

機能: 指定した値がリストに含まれているか確認します。

書き方:

Python
in リスト
not in リスト

用途: 値の存在確認、条件分岐、重複チェック

注意点: 大文字小文字は区別される

Python
fruits = ["りんご", "バナナ", "オレンジ"]

print("りんご" in fruits)
print("ぶどう" in fruits)
print("ぶどう" not in fruits)

実行結果:

True
False
True

リストの連結

機能: 2つのリストを結合して新しいリストを作成します。

書き方:

Python
リスト1 + リスト2

用途: リストの結合、データの統合

注意点: 元のリストは変更されない(新しいリストが作られる)

Python
list1 = [1, 2, 3]
list2 = [4, 5, 6]

combined = list1 + list2
print(combined)

print(f"元のリスト1: {list1}")
print(f"元のリスト2: {list2}")

実行結果:

[1, 2, 3, 4, 5, 6]
元のリスト1: [1, 2, 3]
元のリスト2: [4, 5, 6]

リストの繰り返し

機能: リストの要素を指定回数繰り返して新しいリストを作成します。

書き方:

Python
リスト * 回数

用途: パターンの生成、初期値の設定

注意点: 参照のコピーなので注意が必要

Python
numbers = [1, 2, 3]
repeated = numbers * 3

print(repeated)

実行結果:

[1, 2, 3, 1, 2, 3, 1, 2, 3]

具体例

例1: 買い物リスト

Python
shopping_list = ["牛乳", "パン", "卵", "バナナ"]

print("=== 買い物リスト ===")
print(f"アイテム数: {len(shopping_list)}個")

for item in shopping_list:
    print(f"- {item}")

実行結果:

=== 買い物リスト ===
アイテム数: 4個
- 牛乳
- パン
- 卵
- バナナ

例2: 成績管理

Python
scores = [85, 92, 78, 95, 88]

print("=== 成績一覧 ===")
print(f"受験者数: {len(scores)}人")

total = sum(scores)
average = total / len(scores)

print(f"合計点: {total}点")
print(f"平均点: {average:.1f}点")

実行結果:

=== 成績一覧 ===
受験者数: 5人
合計点: 438点
平均点: 87.6点

例3: 曜日のリスト

Python
weekdays = ["月", "火", "水", "木", "金"]
weekend = ["土", "日"]

all_days = weekdays + weekend

print("平日:", weekdays)
print("週末:", weekend)
print("全曜日:", all_days)

実行結果:

平日: ['月', '火', '水', '木', '金']
週末: ['土', '日']
全曜日: ['月', '火', '水', '木', '金', '土', '日']

例4: 在庫チェック

Python
available_items = ["りんご", "バナナ", "オレンジ", "ぶどう"]

# 注文された商品
order = "バナナ"

if order in available_items:
    print(f"{order}は在庫があります")
else:
    print(f"{order}は在庫がありません")

# もう一つ確認
order2 = "メロン"
if order2 not in available_items:
    print(f"{order2}は在庫がありません")

実行結果:

バナナは在庫があります
メロンは在庫がありません

例5: チームメンバー管理

Python
team_a = ["田中", "佐藤", "鈴木"]
team_b = ["高橋", "伊藤", "渡辺"]

all_members = team_a + team_b

print("=== チーム構成 ===")
print(f"チームA: {team_a}")
print(f"チームB: {team_b}")
print(f"全メンバー: {all_members}")
print(f"総人数: {len(all_members)}人")

実行結果:

=== チーム構成 ===
チームA: ['田中', '佐藤', '鈴木']
チームB: ['高橋', '伊藤', '渡辺']
全メンバー: ['田中', '佐藤', '鈴木', '高橋', '伊藤', '渡辺']
総人数: 6人

例6: パターン生成

Python
# ゲームの初期設定
player_lives = [1] * 3
print(f"プレイヤーのライフ: {player_lives}")

# マス目の作成
board = [0] * 10
print(f"ゲームボード: {board}")

# 繰り返しパターン
pattern = ["○", "×"] * 5
print(f"パターン: {pattern}")

実行結果:

プレイヤーのライフ: [1, 1, 1]
ゲームボード: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
パターン: ['○', '×', '○', '×', '○', '×', '○', '×', '○', '×']

リストの特徴

ミュータブル(変更可能)

Python
# リストは変更できる
numbers = [1, 2, 3]
print(f"変更前: {numbers}")

numbers[0] = 10
print(f"変更後: {numbers}")

実行結果:

変更前: [1, 2, 3]
変更後: [10, 2, 3]

順序を保持

Python
# 追加した順序が保持される
items = []
items.append("first")
items.append("second")
items.append("third")

print(items)

実行結果:

['first', 'second', 'third']

重複を許可

Python
# 同じ値を複数持てる
numbers = [1, 2, 2, 3, 3, 3]
print(numbers)
print(f"2の個数: {numbers.count(2)}")
print(f"3の個数: {numbers.count(3)}")

実行結果:

[1, 2, 2, 3, 3, 3]
2の個数: 2
3の個数: 3

よくある間違い

間違い1: 角括弧を忘れる

Python
# 間違い
numbers = 1, 2, 3  # これはタプル
print(type(numbers))

# 正しい
numbers = [1, 2, 3]  # これがリスト
print(type(numbers))

実行結果:

<class 'tuple'>
<class 'list'>

間違い2: カンマを忘れる

Python
# 間違い
fruits = ["りんご" "バナナ"]  # カンマがない
print(fruits)  # ['りんごバナナ'] になる

# 正しい
fruits = ["りんご", "バナナ"]
print(fruits)

実行結果:

['りんごバナナ']
['りんご', 'バナナ']

間違い3: インデックスの理解

Python
# インデックスは0から始まる
fruits = ["りんご", "バナナ", "オレンジ"]

print(f"1番目の要素: {fruits[0]}")  # 0が1番目
print(f"2番目の要素: {fruits[1]}")  # 1が2番目

実行結果:

1番目の要素: りんご
2番目の要素: バナナ

間違い4: リストと文字列の混同

Python
# 文字列はリストではない
text = "Python"
print(type(text))

# 文字列をリストに変換
text_list = list(text)
print(text_list)
print(type(text_list))

実行結果:

<class 'str'>
['P', 'y', 't', 'h', 'o', 'n']
<class 'list'>

間違い5: 空リストの判定

Python
# 間違い
items = []
if len(items) == 0:  # 冗長
    print("空です")

# 正しい(Pythonic)
items = []
if not items:  # シンプル
    print("空です")

# 空でないリスト
items = [1, 2, 3]
if items:
    print("要素があります")

実行結果:

空です
空です
要素があります

練習問題

問題1(基礎)⭐☆☆

好きな果物を3つ格納したリストを作成し、表示してください。

💡 ヒント

角括弧で囲み、カンマで区切ります。

✅ 解答例
Python
fruits = ["りんご", "バナナ", "オレンジ"]
print(fruits)

実行結果:

['りんご', 'バナナ', 'オレンジ']

解説: 角括弧でリストを作成し、要素をカンマで区切っています。


問題2(基礎)⭐☆☆

リスト [10, 20, 30, 40, 50] の要素数を表示してください。

💡 ヒント

len()関数を使います。

✅ 解答例
Python
numbers = [10, 20, 30, 40, 50]
print(f"要素数: {len(numbers)}")

実行結果:

要素数: 5

解説: len()関数でリストの要素数を取得できます。


問題3(応用)⭐⭐☆

2つのリスト [1, 2, 3][4, 5, 6] を連結して、新しいリストを作成してください。

💡 ヒント

+ 演算子でリストを連結できます。

✅ 解答例
Python
list1 = [1, 2, 3]
list2 = [4, 5, 6]

combined = list1 + list2
print(combined)

実行結果:

[1, 2, 3, 4, 5, 6]

解説: + 演算子で2つのリストを連結できます。


まとめ

このレッスンでは、リストの基本概念と作成方法を学びました。

  • リストは複数データを順序付きで管理するための基本データ構造です。
  • [] を使った作成と、要素の並びを意識した扱い方を理解しました。
  • 異なる型の要素を同じリストで管理できる特徴を確認しました。
  • リストを使うことで、関連データをまとめて処理しやすくなります。
  • 初期化と表示を小さく確認しながら、段階的に操作を増やすことが重要です。