工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python List index() と例

リストは、さまざまなデータ型 (int、float、Boolean、string など) の項目を順番に格納するコンテナーです。 Python に組み込まれている重要なデータ構造です。データは角括弧 ([]) 内に記述され、値はカンマ (,) で区切られます。

リスト内の項目には、インデックス 0 から始まる最初の要素でインデックスが付けられます。新しい項目を追加するか、既存の項目を更新または削除することにより、作成されたリストを変更できます。また、重複するアイテムとネストされたリストを持つこともできます。

リストには多くのメソッドがあり、そのうち重要なものは index() です。

このチュートリアルでは、次のことを学びます:

Python リスト index()

list index() メソッドは、指定された要素の最初の最小インデックスを見つけるのに役立ちます。リスト内に重複する要素がある場合、要素の最初のインデックスが返されます。これは、インデックスを取得する最も簡単で直接的な方法です。

組み込みのリスト index() メソッドのほかに、リスト内包表記、enumerate()、フィルター メソッドを使用して、リストをループするなど、他の方法を使用してインデックスを取得することもできます。

list index() メソッドは、指定された要素の最初の最小インデックスを返します。

構文

list.index(element, start, end)

パラメータ

パラメータ 説明
要素 インデックスを取得する要素。
開始 このパラメータはオプションです。 start:インデックスを定義して要素を検索できます。指定しない場合、デフォルト値は 0 です。
終わり このパラメータはオプションです。検索する要素の終了インデックスを指定できます。指定されていない場合は、リストの最後まで考慮されます。

戻り値

list index() メソッドは、指定された要素のインデックスを返します。要素がリストに存在しない場合、index() メソッドはエラーをスローします。たとえば、ValueError:‘Element’ is not in the list.

例:指定された要素のインデックスを見つける。

リスト my_list =[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’] では、要素 C と F のインデックスを知りたいと考えています。

以下の例は、インデックスを取得する方法を示しています。

my_list = ['A', 'B', 'C', 'D', 'E', 'F']
print("The index of element C is ", my_list.index('C'))
print("The index of element F is ", my_list.index('F'))

出力:

The index of element C is  2
The index of element F is  5

例:index() で start と end を使用する

この例では、開始インデックスと終了インデックスを使用して、リスト内のインデックスの検索を制限しようとします。

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('C', 1, 5))
print("The index of element F is ", my_list.index('F', 3, 7))
#using just the startindex
print("The index of element D is ", my_list.index('D', 1))

出力:

The index of element C is  2
The index of element F is  5
The index of element D is  3

例:存在しない要素で index() メソッドをテストするには

存在しない要素のリストでインデックスを検索しようとすると、次のようなエラーが発生します:

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('Z'))

出力:

Traceback (most recent call last):
File "display.py", line 3, in <module>
print("The index of element C is ", my_list.index('Z'))
ValueError: 'Z' is not in list

for ループを使用してリスト内の要素のインデックスを取得する

list.index() メソッドを使用すると、引数として渡される要素のインデックスが得られることがわかりました。

my_list =['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] . 「Guru」という名前はインデックスに 3 回存在し、「Guru」という名前のすべてのインデックスが必要です。

以下の例に示すように、for ループを使用すると、複数のインデックスを取得できるはずです。

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
all_indexes = [] 
for i in range(0, len(my_list)) : 
    if my_list[i] == 'Guru' : 
        all_indexes.append(i)
print("Originallist ", my_list)
print("Indexes for element Guru : ", all_indexes)

出力:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

while-loop と list.index() の使用

while ループを使用すると、指定されたリストをループして、指定された要素のすべてのインデックスを取得します。

リスト:my_list =['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], 要素 'Guru' のすべてのインデックスが必要です.

以下の例は、while-loop を使用してすべてのインデックスを取得する方法を示しています

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
result = []
elementindex = -1
while True:
    try:
        elementindex = my_list.index('Guru', elementindex+1)
        result.append(elementindex)
    except  ValueError:
        break
print("OriginalList is ", my_list)
print("The index for element Guru is ", result)

出力:

OriginalList is  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
The index for element Guru is  [0, 3, 6]

リスト内包表記を使用してリスト内の要素のインデックスを取得する

すべてのインデックスを取得するための迅速で簡単な方法は、リストでリスト内包表記を使用することです。

リスト内包表記は、新しいシーケンス (リスト、辞書など) を作成するために使用される Python 関数です。つまり、既に作成されているシーケンスを使用します。

より長いループを減らし、コードを読みやすく維持しやすくするのに役立ちます。

次の例は、その方法を示しています:

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru']
print("Indexes for element Guru : ", all_indexes)

出力:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

列挙を使用してリスト内の要素のインデックスを取得する

Enumerate() 関数は、Python で使用できる組み込み関数です。 enumerate を使用して、リスト内の要素のすべてのインデックスを取得できます。入力を反復可能なオブジェクト (つまり、ループできるオブジェクト) として受け取り、出力は各項目へのカウンターを持つオブジェクトです。

次の例は、リストで enumerate を使用して、特定の要素のすべてのインデックスを取得する方法を示しています。

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])

出力:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

フィルタを使用してリスト内の要素のインデックスを取得する

filter() メソッドは、指定された関数に基づいて、指定されたリストをフィルタリングします。リストの各要素は関数に渡され、必要な要素は関数で指定された条件に基づいてフィルター処理されます。

filter() メソッドを使用して、リスト内の特定の要素のインデックスを取得しましょう。

次の例は、リストでフィルターを使用する方法を示しています。

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) 
print("Indexes for element Guru : ", all_indexes)

出力:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

NumPy を使用してリスト内の要素のインデックスを取得する

NumPy ライブラリは、特に配列に使用されます。したがって、ここでは NumPy を使用して、指定されたリストから必要な要素のインデックスを取得します。

NumPy を利用するには、インストールしてインポートする必要があります。

同じ手順は次のとおりです:

ステップ 1) NumPy をインストール

pip install numpy

ステップ 2) NumPy モジュールをインポートします。

import numpy as np

ステップ 3) np.array を利用してリストを配列に変換

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)

ステップ 4) np.where() を使用して、必要な要素のインデックスを取得します

item_index = np.where(np_array == 'Guru')[0]

出力付きの最終的な作業コードは次のとおりです:

import numpy as np
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)
item_index = np.where(np_array == 'Guru')[0]
print("Originallist ", my_list)
print("Indexes for element Guru :", item_index)

出力:

Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0 3 6]

more_itertools.locate() を使用してリスト内の要素のインデックスを取得する

more_itertools.locate() は、リスト内の要素のインデックスを見つけるのに役立ちます。このモジュールは、python バージョン 3.5 以降で動作します。パッケージ more_itertools 使用するには、最初にインストールする必要があります。

以下は、more_itertools をインストールして使用する手順です。

ステップ 1) pip (python パッケージ マネージャー) を使用して more_itertools をインストールします。コマンドは

pip install more_itertools

ステップ 2) インストールが完了したら、locate をインポートします 以下に示すモジュール

from more_itertools import locate

以下の例に示すように、リストでlocateモジュールを利用できるようになりました:

from more_itertools import locate
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist : ", my_list)
print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru'))) 

出力:

Originallist :  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0, 3, 6]

まとめ:


Python

  1. C++ の std::list と例
  2. Python Print() ステートメント:例を使用して印刷する方法
  3. 例を使用した Python 文字列 strip() 関数
  4. 例を使用した Python 文字列 count()
  5. 例を使用した Python round() 関数
  6. 例を使用した Python map() 関数
  7. Python Timeit() と例
  8. 例を使用したコレクション内の Python カウンター
  9. 例を使用した Python List count()
  10. Pythonはリストから重複を削除します
  11. Python LIST から要素を削除する [clear、pop、remove、del]