在 Python 中查詢列表中最小元素的索引

Manav Narula 2023年1月30日
  1. 在 Python 中使用 min()index() 函式查詢列表中最小元素的索引
  2. 在 Python 中使用 min() 函式和 for 迴圈查詢列表中最小元素的索引
  3. 在 Python 中使用 min()enumerate() 函式查詢列表中最小元素的索引
  4. 在 Python 中使用 min()operator.itemgetter() 函式查詢列表中最小元素的索引
  5. 在 Python 中使用 min()__getitem__() 函式查詢列表中最小元素的索引
  6. 在 Python 中使用 numpy.argmin() 函式查詢列表中最小元素的索引
  7. まとめ
在 Python 中查詢列表中最小元素的索引

Python 中的列表物件模擬一個陣列並將不同的元素儲存在一個通用名稱下。元素儲存在特定的索引中,我們可以使用它來訪問它們。

我們可以使用列表執行不同的操作。使用內建列表函式(如 max()min()len 等來返回最大元素、最小元素和列表長度非常簡單。

本文將在 Python 列表中找到最小元素索引。

在 Python 中使用 min()index() 函式查詢列表中最小元素的索引

在 Python 中,我們可以使用 min() 函式來查詢可迭代物件中的最小項。然後,列表的 index() 函式可以返回列表中任何給定元素的索引。

如果給定元素不在列表中,則會引發 ValueError

例子:

lst = [8, 6, 9, -1, 2, 0]
m = min(lst)
print(lst.index(m))

輸出:

3

請記住,列表的索引從 0 開始。上面的答案顯示 3,因為最小的元素位於第四位。

在 Python 中使用 min() 函式和 for 迴圈查詢列表中最小元素的索引

我們可以用 for 迴圈代替前面方法中 index() 函式的使用。它可以遍歷列表並單獨比較元素。

當匹配時,我們返回該索引的值並使用 break 語句跳出迴圈。

例子:

lst = [8, 6, 9, -1, 2, 0]
m = min(lst)
for i in range(len(lst)):
    if lst[i] == m:
        print(i)
        break

輸出:

3

在 Python 中使用 min()enumerate() 函式查詢列表中最小元素的索引

enumerate() 函式接受一個可迭代物件。它返回一個包含可迭代元素的物件,其中包含元素索引的計數器變數。

這個物件可以使用 for 迴圈進行迭代。然後,我們將使用列表推導遍歷這個物件,建立一個新列表,並使用 min() 函式來定位列表中的最小元素。

我們將在一行中獲取元素及其索引。

例子:

lst = [8, 6, 9, -1, 2, 0]
a, i = min((a, i) for (i, a) in enumerate(lst))
print(i)

輸出:

3

在 Python 中使用 min()operator.itemgetter() 函式查詢列表中最小元素的索引

Python 中的 operator 模組提供了額外的運算子,我們可以使用它們來簡化我們的程式碼。該模組中的 itemgetter() 函式返回一個可呼叫物件,並且可以從其運算元中檢索一些元素。

min() 函式接受 key 引數來確定比較標準。我們可以提供 itemgetter() 函式作為此引數的值,以返回最小元素的索引。

例子:

from operator import itemgetter

lst = [8, 6, 9, -1, 2, 0]
i = min(enumerate(lst), key=itemgetter(1))[0]
print(i)

輸出:

3

我們首先在前面的方法中找到最小元素及其索引。此方法在一行中完成這兩個步驟;因此,它被認為是一種更快的方法。

在 Python 中使用 min()__getitem__() 函式查詢列表中最小元素的索引

operator.itemgetter() 函式在內部呼叫魔術函式 __getitem__()。我們可以通過直接使用該函式並提高程式碼速度來避免匯入運算子模組的需要。

在 Python 中返回列表中的最小元素索引類似於前面的方法。

例子:

lst = [8, 6, 9, -1, 2, 0]
i = min(range(len(lst)), key=lst.__getitem__)
print(i)

輸出:

3

在 Python 中使用 numpy.argmin() 函式查詢列表中最小元素的索引

numpy.argmin() 函式用於查詢 Python 中最小元素的位置。我們可以將此函式與列表一起使用,它將返回一個包含列表最小元素索引的陣列。

例子:

import numpy as np

lst = [8, 6, 9, -1, 2, 0]
i = np.argmin(lst)
print(i)

輸出:

3

まとめ

最後,我們討論了幾種方法來查詢列表中最小元素的索引。min() 函式是所有方法中最常見的。

enumerate()itemgetter() 等不同的函式可用於建立不同的方法。最後一種方法,使用 numpy.argmin() 函式,更直接。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python List