Python - 查找列表中最小元素的索引

pythonserver side programmingprogramming更新于 2023/12/29 17:31:00

列表中最小值的位置由最小元素的索引表示。每个列表元素都有一个不同的索引,第一个元素之后的每个附加元素的索引都会增加一,第一个元素的索引从零开始。通过确定最小元素的索引,我们可以找到列表中最小值的确切位置。在 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()。本文帮助我们构建基于在任何搜索应用程序中搜索元素的逻辑。


相关文章