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()。本文帮助我们构建基于在任何搜索应用程序中搜索元素的逻辑。