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() 的函数启动程序,该函数接受参数 lst(通过函数调用访问变量 my_list)。然后对内置函数 min() 使用相同的参数,该函数将从列表中找到最小值并将其存储在变量 min_value 中。现在将内置方法 index() 与变量 lst 一起应用,以获取列表中存在的最小值的特定位置索引。接下来,使用函数 return 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 # 创建列表 my_list = [50, 2, 19, 11, 27] min_index = find_min_index(my_list) print(" 最小索引位置:\n", min_index)
输出
最小索引位置: 1
使用 enumerate()
该程序使用内置函数 enumerate() 来跟踪列表上的迭代,并使用 for 循环来帮助找到最小索引元素。
示例
在下面的示例中,使用递归技术来解决此问题陈述。数字列表作为参数传递给函数 find_min_index。然后在函数中使用 min 函数来获取输入列表中的最小数字。然后,代码使用 for 循环和枚举函数对输入列表的索引和值进行迭代。将每个索引值对的值与最小值进行比较。如果该值等于最小值,则该方法返回列表中的最小元素索引。
def find_min_index(lst): min_value = min(lst) for index, value in enumerate(lst): if value == min_value: return index # 创建列表 my_list = [11, 12, 13, 14, 15] min_index = find_min_index(my_list) print("列表中的最小索引位置:\n", min_index)
输出
列表中的最小索引位置: 0
使用 numpy.argmin() 函数
该程序使用 numpy 模块后面的内置函数 argmin() 来查找具有其索引的两个最小元素。
示例
在下面的示例中,使用 numpy 模块启动程序并将引用对象作为 np。然后它会使用递归函数来使用一些内置函数,例如 array()[存储相同类型的列表元素] 和 argmin()[返回其元素的最小索引] 并将其存储到各自的变量中。然后使用函数 return 来获取所需的结果。
import numpy as np def find_min_index(lst): arr = np.array(lst) min_index = np.argmin(arr) return min_index # 创建列表 my_list = [100, 676, 66, 987, 99, 111, 55, 444] min_index = find_min_index(my_list) print("列表中的最小索引位置:\n", min_index)
输出
列表中的最小索引位置: 6
使用 lambda 函数的 min()
这是此问题陈述的另一种方法,它使用三个内置函数来查找列表中最小元素的索引。
示例
在下面的示例中,使用名为 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 # 创建列表 my_list = [5, 2, 9, 1, 7] min_index = find_min_index(my_list) print("最小索引位于:\n", min_index)
输出
最小索引位于: 3
使用 sorted() 函数
该程序使用内置函数 sorted(),它接受两个参数 - enumerate() 用于跟踪列表上的迭代,key 用于设置内置函数 lamda 以对列表中的最小元素进行排序。
示例
在下面的示例中,将有一个给定的输入列表通过函数调用。然后,函数定义接收该列表,并使用内置函数 sorted() 对最小索引元素进行处理。然后在函数中使用枚举函数构建一个元组列表,每个元组包含来自输入列表的元素的索引和值。使用 sorted 函数按升序对此元组列表进行排序,该函数带有一个关键参数,该参数指定一个 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 # 创建列表 my_list = [11, 7, 18, 20, 12, 0] min_index = find_min_index(my_list) print("最小索引位于:\n",min_index)
输出
最小索引位于: 5
结论
我们讨论了解决这个问题陈述的各种方法,其中我们学习了一些 Python 的内置函数,例如 min()、array()、sorted()、enumerate()、index() 和 argmin()。本文帮助我们构建基于在任何搜索应用程序中搜索元素的逻辑。