Python – 查詢列表中最小元素的索引
列表中最小值的索引表示最小元素的位置。每個列表元素都有一個獨特的索引,從第一個元素的零開始,每個後續元素遞增一。透過確定最小元素的索引,我們可以找到列表中最小值的確切位置。在 Python 中,我們有一些內建函式,如 min()、index()、argmin()、lambda() 和 enumerate(),可以用來查詢列表中最小元素的索引。
語法
以下語法用於示例:
min()
min() 是 Python 中的內建函式,用於返回最小值。
index()
index() 是 Python 中的內建函式,用於在列表中搜索元素並返回元素的位置。
argmin()
Python 的內建方法 argmin() 用於查詢最小元素並返回最小位置索引。
lambda
Python 中的 lambda 函式被稱為匿名函式。當需要函式物件時可以使用它。
enumerate()
enumerate() 是 Python 中的內建函式,允許跟蹤迴圈迭代。
使用 index() 函式
程式使用 index() 返回列表中元素的特定位置/索引。它還使用內建函式 min() 獲取最小索引元素。
示例
在下面的示例中,程式首先使用名為 find_min_index() 的函式(透過函式呼叫訪問變數 my_list),該函式接受引數 lst。然後,對內建函式min()使用相同的引數,該函式將查詢列表中的最小值並將其儲存在變數 min_value 中。現在,使用變數lst應用內建方法index()來獲取列表中最小值的特定位置索引。接下來,使用函式返回min_index,它返回最小索引。接下來建立儲存一些整數值的變數 my_list。然後在變數 min_index 中使用函式呼叫,並將相同的變數作為print()函式的引數來獲取結果。
def find_min_index(lst): min_value = min(lst) min_index = lst.index(min_value) return min_index # Create the list my_list = [50, 2, 19, 11, 27] min_index = find_min_index(my_list) print(" The minimum index position:\n", min_index)
輸出
The minimum index position: 1
使用 enumerate()
程式使用內建函式 enumerate() 來跟蹤列表的迭代,並使用 for 迴圈來查詢最小索引元素。
示例
在下面的示例中,使用遞迴技術來解決此問題陳述。將數字列表作為引數傳遞給函式 find_min_index。然後在函式內使用 min 函式來獲取輸入列表中的最小數字。然後,程式碼使用 for 迴圈和 enumerate 函式迭代輸入列表的索引和值。將每個索引-值對的值與最小值進行比較。如果該值等於最小值,則該方法返回列表中的最小元素索引。
def find_min_index(lst): min_value = min(lst) for index, value in enumerate(lst): if value == min_value: return index # Create the list my_list = [11, 12, 13, 14, 15] min_index = find_min_index(my_list) print("The minimum index position from the list:\n", min_index)
輸出
The minimum index position from the list: 0
使用 numpy.argmin() 函式
程式使用名為 numpy 的模組的內建函式 argmin() 來查詢最小元素及其索引。
示例
在下面的示例中,程式從 numpy 模組開始,並將引用物件作為 np。然後它將使用遞迴函式來使用一些內建函式,例如 array()[儲存相同型別的列表元素] 和 argmin()[返回最小索引及其元素] 並將其儲存到各自的變數中。然後使用函式返回以獲得所需的結果。
import numpy as np def find_min_index(lst): arr = np.array(lst) min_index = np.argmin(arr) return min_index # create the list my_list = [100, 676, 66, 987, 99, 111, 55, 444] min_index = find_min_index(my_list) print("The minimum index position from the list:\n", min_index)
輸出
The minimum index position from the list: 6
使用 min() 和 lambda 函式
這是解決此問題陳述的另一種方法,它使用三個內建函式來查詢列表中最小元素的索引。
示例
在下面的示例中,程式從名為find_min_index的函式開始,該函式接受引數lst以獲取值列表。然後初始化變數 min_index,該變數使用一些內建函式(min()、range()、len()和lambda)來儲存值,這些函式將查詢列表中元素的最小索引。接下來,使用函式呼叫將變數my_list作為引數並將其儲存在變數 min_index 中。最後,我們藉助變數min_index列印結果。
def find_min_index(lst): min_index = min(range(len(lst)), key=lambda i: lst[i]) return min_index # Create the list my_list = [5, 2, 9, 1, 7] min_index = find_min_index(my_list) print("The minimum index present at:\n", min_index)
輸出
The minimum index present at: 3
使用 sorted() 函式
程式使用內建函式 sorted(),它接受兩個引數:enumerate() 用於跟蹤列表上的迭代,以及 key 用於設定內建函式 lamda 以對列表中的最小元素進行排序。
示例
在下面的示例中,將有一個給定的輸入列表透過函式呼叫傳遞。然後,函式定義接收該列表以使用內建函式 sorted() 對最小索引元素進行操作。然後在函式內使用 enumerate 函式來構建一個元組列表,每個元組包含輸入列表中元素的索引和值。使用 sorted 函式和一個 key 引數對這個元組列表進行升序排序,該引數指定一個 lambda 函式來從每個元組中提取值。透過函式返回,它將得到最小值。接下來,在變數 my_list 中建立輸入列表。然後使用函式呼叫傳遞列表值 my_list 的引數,並將其儲存在變數 min_index 中。最後,使用相同的變數作為 print 函式的引數來獲取結果。
def find_min_index(lst): sorted_list = sorted(enumerate(lst), key=lambda x: x[1]) min_index = sorted_list[0][0] return min_index # Create the list my_list = [11, 7, 18, 20, 12, 0] min_index = find_min_index(my_list) print("The minimum index present at:\n",min_index)
輸出
The minimum index present at: 5
結論
我們討論了多種解決此問題陳述的方法,學習了 Python 的一些內建函式,例如 min()、array()、sorted()、enumerate()、index() 和 argmin()。本文幫助我們構建基於在任何搜尋應用程式中搜索元素的邏輯。