Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでリストのインデックスと値を取得する3つの方法(index・range・enumerate)

Pythonでリストを扱っていると、特定の位置にある要素へアクセスしたり、逆に要素からインデックスを取得したりする場面が頻繁に発生します。この記事では、リスト内の要素のインデックスや値を取得するための代表的な3つの方法を、サンプルコード付きでわかりやすく解説します。

方法1:list.index() を使う

index() メソッドは、指定した要素がリストのどの位置に存在するかを調べたいときに便利です。引数に要素の値を渡すと、その要素のインデックス位置(先頭は0)が返されます。

サンプルコード

listA = [11, 45, 27, 8, 43]
# 45 のインデックスを表示
print("Index of 45: ", listA.index(45))

listB = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
# 'Wed' のインデックスを表示
print("Index of Wed: ", listB.index('Wed'))

実行結果

Index of 45:  1
Index of Wed:  3

数値でも文字列でも同様に、index() メソッドひとつで目的の要素の位置を簡単に取得できます。なお、同じ値が複数存在する場合は、最初に見つかった位置が返される点に注意してください。

方法2:range() と len() を組み合わせる

リストのすべてのインデックスと値のペアを一覧として取得したい場合は、len() でリストの長さを求め、range() でループを回す方法が使えます。

サンプルコード

listA = [11, 45, 27, 8, 43]
# 元のリストを表示
print("Given list: ", listA)
# すべてのインデックスと値を表示
print("Index and Values: ")
print([list((i, listA[i])) for i in range(len(listA))])

実行結果

Given list: [11, 45, 27, 8, 43]
Index and Values:
[[0, 11], [1, 45], [2, 27], [3, 8], [4, 43]]

リスト内包表記を使うことで、インデックスと値のペアをまとめて新しいリストとして生成できます。

方法3:enumerate() を使う(おすすめ)

enumerate() 関数は、リストの各要素について「インデックス」と「値」を同時に取り出せる非常に便利な組み込み関数です。インデックスと値の両方が必要な場合、最もPythonらしい(Pythonicな)書き方として広く推奨されています。

サンプルコード

listA = [11, 45, 27, 8, 43]
# 元のリストを表示
print("Given list: ", listA)
# すべてのインデックスと値を表示
print("Index and Values: ")
for index, value in enumerate(listA):
    print(index, value)

実行結果

Given list: [11, 45, 27, 8, 43]
Index and Values:
0 11
1 45
2 27
3 8
4 43

for index, value in enumerate(listA): のように書くだけで、ループ変数としてインデックスと値を同時に受け取れます。コードが簡潔になり可読性も高まるため、実務でも最もよく使われるパターンです。

まとめ

  • 特定の要素の位置だけ知りたいlist.index(値)
  • インデックスと値のペアを一括生成したいrange(len()) + リスト内包表記
  • ループ処理でインデックスと値を同時に扱いたいenumerate()

用途に応じてこれらの方法を使い分けることで、Pythonのリスト操作をより効率的に行えるようになります。

  1. Pythonで辞書の値(リスト)をクリアする2つの方法

    この記事では、値としてリストを持つ辞書を扱い、そのリストの中身を空にする(クリアする)方法について解説します。アプローチは主に2つあります。ひとつは clear() メソッドを使う方法、もうひとつは辞書内包表記を使って各キーに空のリストを代入する方法です。方法1:ループと clear() メソッドを使うまず、辞書の各キーに対してループ処理を行い、値であるリストに対して clear() メソッドを呼び出します。この方法では元の辞書オブジェクトを保持したまま、リストの中身だけを空にできます。x1 = {Apple : [4,6,9,2], Grape : [7,8,2,1], Orange : [

  2. Python入門:リストスライスとリスト内包表記の基本を徹底解説

    この記事では、Pythonにおけるリストスライス(list slicing)とリスト内包表記(list comprehension)について、初心者にもわかりやすく解説します。リストスライスとは?「スライス」という言葉は、文字通り「何かを小さく切り分ける」という意味です。リストスライスとは、元のリストから一部分だけを取り出す処理のことを指します。どこから切り出すか(開始位置)、どこで止めるか(終了位置)、どの間隔で切り出すか(ステップ数)を自由に指定できるのが特徴です。リスト内包表記とは?リスト内包表記は、既存のリストをもとに新しいリストを生成するための記法です。forループや条件式を1行にま