【Python】index()でリストなどの要素のインデックスを取得!
Pythonでリストなどの要素のインデックスを取得するにはindex()を使用します。
index()はリストやタプルのような複数のデータ型に一致するインデックス(要素の番号)を返す関数であり、指定した要素が複数のデータ型のインデックス(何番目にあるのか)を取得することができます。
また、複数のデータ型なのでリストやタプル、辞書に使えると思いがちですが、辞書には使用することができませんので注意してくだい。
また、リストやタプルのような要素のインデックスだけでなく、「あいうえお」のような文字列の文字のインデックスも調べることができます。
今回はPythonのindex()でリストなどの要素のインデックスを取得する方法について以下の内容で解説していきます。
⚫︎ リストに指定した要素が存在する場合
⚫︎ リストに指定した要素が存在しない場合
⚫︎ リストに指定した要素が複数存在する場合
⚫︎ 二次元リストの要素のインデックスを取得する場合
⚫︎ 三次元リストの要素のインデックスを取得する場合
⚫︎ index()で文字列の文字のインデックスを取得する方法
目次
index()とは
index()とは、リストやタプルのような複数のデータ型(シーケンス)に一致するインデックス(要素の番号)を返す関数になります。
しかし、index()は複数のデータ型である辞書型には使用できませんので注意してください。
index()の書き方
index()の構文は下記となります。
1 |
リストなど.index(インデックスを調べたい要素) |
index()のパラメータ
⚫︎ インデックスを調べたい要素:
指定したリストなどのインデックスを調べたい要素を文字列で指定する
index()のパラメータにインデックスを調べたい要素を指定することでリストなどの要素のインデックス(何番目か)を取得することができます。
また、インデックスは「0」からスタートします。
リストなどの要素のインデックスを取得するサンプルコード
リストなどの要素のインデックスを取得するサンプルコードを紹介します。
リストに指定した要素が存在する場合
リストに指定した要素が存在する場合にindex()を使用してみます。
例
1 2 3 4 5 |
lang = ['Java', 'Python', 'Unity', 'C++', 'Dart', 'JavaScript'] print('「Java」のインデックス:', lang.index('Java')) print('「Dart」のインデックス:', lang.index('Dart')) print('「JavaScript」のインデックス:', lang.index('JavaScript')) |
出力結果
「Java」のインデックス: 0
「Dart」のインデックス: 4
「JavaScript」のインデックス: 5
リストに指定した要素が存在する場合、index()は指定した要素のインデックスを返します。
その為、Javaのインデックスは「0」、Dartのインデックスは「5」、JavaScriptのインデックスは「5」と表示されます。
リストに指定した要素が存在しない場合
リストに指定した要素が存在しない場合にindex()を使用してみます。
例
1 2 3 |
lang = ['Java', 'Python', 'Unity', 'C++', 'Dart', 'JavaScript'] print('「Swift」のインデックス:', lang.index('Swift')) |
出力結果
ValueError: ‘Swift’ is not in list
リストに指定した要素が存在しない場合にindex()を使用すると、エラーが発生します。
リストに指定した要素が複数存在する場合
リストに指定した要素が複数存在する場合にindex()を使用してみます。
例
1 2 3 4 |
lang = ['Java', 'Python', 'Unity', 'C++', 'Dart', 'JavaScript', 'Python', 'Unity'] print('「Python」のインデックス:', lang.index('Python')) print('「Unity」のインデックス:', lang.index('Unity')) |
出力結果
「Python」のインデックス: 1
「c
リストに指定した要素が複数存在する場合にindex()を使用すると、最初に出てきた要素のインデックスを返します。
その為、Pythonのインデックスは「1」、Pythonのインデックスは「1」と表示されます。
多次元のリストなどの要素のインデックスを取得するサンプルコード
多次元のリストなどの要素のインデックスを取得するサンプルコードを紹介します。
今回は多次元のリスト(list)の要素のインデックスを調べてみます。
二次元リストの要素のインデックスを取得する場合
index()で二次元リストの要素のインデックスを取得する場合を見てみます。
例
1 2 3 4 5 6 7 |
lang = [ ['Java', 'Python'], ['Unity', 'C++'], ['Dart', 'JavaScript'], ['Python', 'Unity'] ] print('「Python」のインデックス:', lang[0].index('Python')) print('「Unity」のインデックス:', lang[1].index('Unity')) print('「JavaScript」のインデックス:', lang[2].index('JavaScript')) |
出力結果
「Python」のインデックス: 1
「Unity」のインデックス: 0
「JavaScript」のインデックス: 1
index()を使用し、リストの後ろにインデックスを1つ指定することで二次元のリストの要素のインデックスを取得することができます。
その為、Pythonのインデックスは「0」、Unityのインデックスは「0」、JavaScriptのインデックスは「1」と表示されています。
三次元リストの要素のインデックスを取得する場合
index()で三次元リストの要素のインデックスを取得する場合を見てみます。
例
1 2 3 4 5 6 7 8 |
lang = [ [['Java', 'Python'], ['Unity', 'C++'], ['Swift', 'C#', 'VBA', 'C']], [['Dart', 'JavaScript'], ['PHP', 'Ruby'], ['Kotlin', 'Go', 'R', 'Cobol']] ] print('「Swift」のインデックス:', lang[0][2].index('Swift')) print('「Ruby」のインデックス:', lang[1][1].index('Ruby')) print('「R」のインデックス:', lang[1][2].index('R')) |
出力結果
「Swift」のインデックス: 0
「Ruby」のインデックス: 1
「R」のインデックス: 2
index()を使用し、リストの後ろにインデックスを2つ指定することで二次元のリストの要素のインデックスを取得することができます。
その為、Swiftのインデックスは「0」、Rubyのインデックスは「1」、Rのインデックスは「2」と表示されています。
index()で文字列の文字のインデックスを取得する方法
index()はリストのような複数のデータ型だけではなく、文字列中の文字のインデックスを調べることもできます。
例
1 2 3 4 5 |
text = '坊主が屏風に上手に坊主の絵を描いた。' print('「絵」のインデックス:', text.index('絵')) print('「上手」のインデックス:', text.index('上手')) print('「坊主」のインデックス:', text.index('坊主')) |
出力結果
「絵」のインデックス: 12
「上手」のインデックス: 6
「坊主」のインデックス: 0
index()で文字列の文字のインデックスを取得することができます。
その為、絵のインデックスは「12」、上手のインデックスは「6」、坊主のインデックスは「0」と表示されます。
今回のポイント
index()でリストなどの要素のインデックスを取得
⚫︎ Pythonでリストなどの要素のインデックスを取得するにはindex()を使用する
⚫︎ index()はリストなどの複数のデータ型の要素のインデックス(何番目か)を調べることができる
(リストやタプルはOKだが辞書では使用できない)
⚫︎ リストに指定した要素が存在する場合にindex()を使用すると、0から数えた要素のインデックスを返す
⚫︎ リストに指定した要素が存在しない場合にindex()を使用すると、エラーが発生する
⚫︎ リストに指定した要素が複数存在する場合にindex()を使用すると、最初に出てきた要素のインデックスを返す
⚫︎ index()は二次元、三次元リストなどの多次元の複数のデータ型の要素のインデックス(何番目か)も調べることができる
(多次元の場合は多次元の複数のデータ型の後ろにインデックスを指定する)
⚫︎ index()は文字列中の文字のインデックスも調べることができる
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。