Python リストの基本操作と応用

1. 要素数の取得

リスト内に含まれる要素の総数を取得します。

# リストの長さを取得
members = ["佐藤", "鈴木", 99]
length = len(members)
print(length)  # 出力: 3

2. インデックスによる要素の参照

特定の位置にある要素を取得します。インデックスは 0 から始まります。

# 最初の要素を取得
members = ["佐藤", "鈴木", 99]
first_member = members[0]  # "佐藤"
print(first_member)

3. スライスによる範囲参照

指定した範囲の部分リストを取得します。終了インデックスは含まれません。

# 先頭から2つ目の要素までを取得(インデックス1まで)
members = ["佐藤", "鈴木", 99]
subset = members[0:2]  # ["佐藤", "鈴木"]
print(subset)

4. 要素の削除

リストは可変オブジェクトのため、動的に要素を削除可能です。文字列などは不変のため、削除・変更できません。

# 方法1: pop()で指定インデックスの要素を削除
members = ["佐藤", "鈴木", 99]
members.pop(1)
print(members)  # ["佐藤", 99]

# 方法2: del文で削除(注意:範囲指定の書き方は文中に誤りあり)
members = ["佐藤", "鈴木", 99]
del members[1]
print(members)  # ["佐藤", 99]

5. 要素の更新

既存の要素を新しい値で上書きできます。

# 要素の変更
members = ["佐藤", "鈴木", 99]
members[2] = 66
members[0] = "高橋"

# 文字列の一部を参照(文字列はインデックスで文字単位にアクセス可能)
char = members[0][1]  # "高"の次の文字 → "橋"

6. スライスにおけるステップ指定

開始・終了に加えて、間引き間隔(ステップ)を指定できます。

# ステップ2で要素を取得(0番目→2番目は飛ばす)
members = ["佐藤", "鈴木", "田中"]
partial = members[0:2:2]  # ["佐藤"]
print(partial)

7. forループによる処理

リストの全要素を順に処理します。インデックスとともに出力するには以下のような手法があります。

# テーマデータ
staffs = ["高橋", "伊藤", "加藤", "山田"]
# 方法A: カウンタ変数を明示的に使用
count = 0
for name in staffs:
    print(count, name)
    count += 1
# 方法B: rangeとlenを組み合わせ
indices = range(len(staffs))  # [0, 1, 2, 3]
for i in indices:
    print(i, staffs[i])

また、入れ子のループにより各要素(文字列)を一文字ずつ処理することも可能です。

8. 補足:複数要素の削除

範囲指定で一度に削除する場合:

items = ["A", "B", "C", "D", "E"]
del items[1:4]  # インデックス1〜3を削除 → ["A", "E"]

9. リストの更新機能について

リストそのもののサイズや構造変更は可能です(append・extendなど)が、「update」メソッドのような組み込みメソッドは存在しません。

演習:整数加算の簡易パーサ

ユーザー入力(例:「5+9」「5 + 9」など)から数字を抽出し、加算結果を求めるプログラムです。

# 入力例:"5 + 9"
user_input = input("入力してください: ").strip()

# 方法1: '+'で分割+trimしてパース
parts = user_input.split('+')
a = int(parts[0].strip())
b = int(parts[1].strip())
result = a + b
print(result)
# 方法2: 全文字を走査し数字のみ抜き出し
total = 0
for ch in user_input:
    if ch.isdigit():
        total += int(ch)
print(total)

タグ: Pythonリスト操作 スライス インデックス ループ処理 文字列パース

7月26日 20:44 投稿