リストの基本操作を学ぼう

学習の目標

本章では、以下の内容を学習します。

  • リストとは何かを理解する
  • リストの作成方法を習得する
  • インデックスを使った要素の取得方法を学ぶ
  • リストの長さを調べる方法を理解する
  • リストを使った基本的なプログラムを作成する

リストとは何か

これまで変数を使って、一つの値を保存してきました。 しかし、プログラムを作っていると、複数の値をまとめて管理したい場面がよくあります。

例えば、好きな果物を3つ管理したい場合、今までの方法では以下のように書く必要がありました。

fruit1 = "りんご"
fruit2 = "バナナ"
fruit3 = "オレンジ"

このように一つひとつの変数で管理すると、果物の数が増えるたびに新しい変数を作る必要があります。 また、すべての果物を一度に表示したい場合も、一つずつprint文を書かなければなりません。

そこで便利なのがリストです。 リストを使えば、複数の値を一つの変数にまとめて保存できます。

リストは、複数のデータを順番に並べて管理できるデータ構造です。 箱の中に複数の値を順番に入れて、番号を付けて管理しているようなイメージですね。

リストの作成と基本的な使い方

リストの作成方法

リストを作成するには、角括弧[]を使います。 値と値の間はカンマ,で区切ります。

VS Codeで新しいファイル list_basic.py を作成して、以下のコードを入力してみましょう。

# 果物のリストを作成
fruits = ["りんご", "バナナ", "オレンジ"]
# リストを表示
print(fruits)

このプログラムをターミナルで実行してみてください。

python list_basic.py

実行結果は以下のようになります。

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

角括弧とカンマ付きで表示されますが、これがリストの形式です。 三つの文字列が一つのリストにまとめられて保存されていることが確認できます。

さまざまなデータ型をリストに保存

リストには文字列だけでなく、数値や異なるデータ型を混在させることもできます。

# 数値のリストを作成
numbers = [10, 20, 30, 40, 50]
print(numbers)
# 異なるデータ型を混在させたリスト
mixed_list = ["太郎", 25, True, "学生"]
print(mixed_list)

実行結果は以下のようになります。

[10, 20, 30, 40, 50]
['太郎', 25, True, '学生']

このように、リストには様々な種類のデータを保存できます。 ただし、通常は同じ種類のデータをまとめることが多いです。

インデックスを使った要素の取得

リストに保存された個々の値を要素と呼びます。 各要素にはインデックスという番号が自動的に割り当てられます。

重要なのは、インデックスは0から始まるということです。 最初の要素がインデックス0、2番目の要素がインデックス1、3番目の要素がインデックス2となります。

基本的な要素の取得

角括弧の中にインデックス番号を指定することで、特定の要素を取得できます。

# 果物のリストを作成
fruits = ["りんご", "バナナ", "オレンジ"]
# 各要素を取得して表示
print("最初の果物:", fruits[0])
print("2番目の果物:", fruits[1])
print("3番目の果物:", fruits[2])

実行結果は以下のようになります。

最初の果物: りんご
2番目の果物: バナナ
3番目の果物: オレンジ

このように、インデックスを使って特定の位置にある要素を取り出すことができます。

負のインデックス

Pythonでは、負の数をインデックスに使用することもできます。 負のインデックスは、リストの末尾から数えた位置を表します。

fruits = ["りんご", "バナナ", "オレンジ"]
# 負のインデックスを使用
print("最後の果物:", fruits[-1])
print("最後から2番目の果物:", fruits[-2])
print("最後から3番目の果物:", fruits[-3])

実行結果は以下のようになります。

最後の果物: オレンジ
最後から2番目の果物: バナナ
最後から3番目の果物: りんご

負のインデックスは、リストの長さが分からない場合でも最後の要素にアクセスしたい時に便利です。

リストの長さを調べる

リストに含まれる要素の数を調べるには、len()関数を使用します。 これは文字列の長さを調べる時と同じ関数です。

# 様々なリストの長さを調べる
fruits = ["りんご", "バナナ", "オレンジ"]
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
empty_list = []
print("fruitsの長さ:", len(fruits))
print("numbersの長さ:", len(numbers))
print("empty_listの長さ:", len(empty_list))

実行結果は以下のようになります。

fruitsの長さ: 3
numbersの長さ: 10
empty_listの長さ: 0

空のリスト(要素が一つもないリスト)の長さは0になります。 len()関数は、リストを処理する際に要素数を確認したい場合によく使用されます。

存在しないインデックスへのアクセス

リストのインデックスは0から始まり、長さ-1で終わります。 存在しないインデックスにアクセスしようとするとエラーが発生します。

fruits = ["りんご", "バナナ", "オレンジ"]
# 正常なアクセス
print(fruits[0]) # 問題なし
print(fruits[2]) # 問題なし
# エラーが発生するアクセス
print(fruits[3]) # IndexError が発生

3つの要素を持つリストのインデックスは0、1、2までしか存在しないため、インデックス3にアクセスするとIndexErrorが発生します。

このエラーを避けるためにも、len()関数でリストの長さを確認してからアクセスすることが大切です。

リストを使った簡単なプログラム

これまで学んだ内容を使って、学生の成績を管理する簡単なプログラムを作成してみましょう。

# 学生の名前と成績のリスト
students = ["田中", "佐藤", "鈴木", "高橋"]
scores = [85, 92, 78, 88]
# 各学生の成績を表示
print("=== 学生の成績一覧 ===")
print(f"{students[0]}さん: {scores[0]}点")
print(f"{students[1]}さん: {scores[1]}点")
print(f"{students[2]}さん: {scores[2]}点")
print(f"{students[3]}さん: {scores[3]}点")
# リストの情報を表示
print(f"\n学生数: {len(students)}人")
print(f"最初の学生: {students[0]}さん")
print(f"最後の学生: {students[-1]}さん")

実行結果は以下のようになります。

=== 学生の成績一覧 ===
田中さん: 85点
佐藤さん: 92点
鈴木さん: 78点
高橋さん: 88点
学生数: 4人
最初の学生: 田中さん
最後の学生: 高橋さん

このプログラムでは、学生の名前と成績を別々のリストで管理し、同じインデックスを使って対応する情報を取得しています。

空のリストの作成

要素が入っていない空のリストを作成することもできます。 後から要素を追加する場合によく使用される方法です。

# 空のリストを作成
shopping_list = []
print("買い物リスト:", shopping_list)
print("リストの長さ:", len(shopping_list))
# 空のリストかどうかを確認
if len(shopping_list) == 0:
print("買い物リストは空です")

実行結果は以下のようになります。

買い物リスト: []
リストの長さ: 0
買い物リストは空です

空のリストは[]で表示され、長さは0になります。

まとめ

本章では、Pythonのリストの基本操作について学習しました。 理解できた内容は以下の通りです。

リストは複数の値を一つの変数で管理できる便利なデータ構造であることを学びました。 角括弧[]を使ってリストを作成し、カンマで要素を区切って値を保存します。

また、インデックスを使って特定の要素にアクセスする方法を習得しました。 インデックスは0から始まり、負の値を使って末尾からアクセスすることも可能です。

さらに、len()関数を使ってリストの長さを確認する方法を学び、存在しないインデックスにアクセスするとエラーが発生することも理解しました。

これで、複数のデータを効率的に管理する基礎が身につきました。 次の章では、リストの要素を変更したり、新しい要素を追加・削除したりする方法を学んでいきます。

このセクションは有料サブスクリプションへの登録、またはログインが必要です。完全なコンテンツにアクセスするには、料金ページ(/pricing)をご覧ください。購入済みの場合は、ログインしてください。

Starterプランでより詳しく学習

この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。

作成者:とまだ
Previous
データ型とコレクション