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)