Python 列表中最多K个元素的索引

2024年11月09日 Python 列表中最多K个元素的索引 极客笔记

Python 列表中最多K个元素的索引

给定列表中的最多K个元素将被设置为特定值,以过滤那些元素大于K值的索引。在Python中,我们有一些内置函数,如enumerate(),range(),len(),where(),map(),range()和filter(),用于解决列表中最多k个元素的索引。

让我们来看一个例子。

给定列表[10, 8, 13, 29, 7, 40, 91]和K值设置为13。

现在,它将检查有多少元素小于或等于12,并过滤那些大于它的索引。

然后最终结果变为[10, 8, 13, 7]

语法

以下示例中使用了以下语法-

enumerate()

enumerate()是Python中的内置函数,用于跟踪每个给定索引元素的特定迭代。

range()

range()是Python中的一个内置函数,根据给定的范围返回数字的序列。

len()

len()是Python中的内置函数,返回结果的长度。

where()

where()是Python中的一个内置函数,它返回输入数组元素中满足特定条件的索引。

map()

内置函数map()允许使用一些特定的内置函数对输入列表进行迭代。

filter()

filter()方法是在我们需要根据特定条件过滤项时使用的。简单来说,它允许迭代那些满足条件的元素。

lambda()

这个在Python中的lambda函数被称为匿名函数。它可以在需要函数对象时使用。

使用列表推导

在下面的示例中,我们将首先定义表示最多元素数量的K值。然后创建将在列表推导中使用的列表,其中内置函数enumerate()跟踪每个索引元素的特定迭代。使用<=运算符,它根据K值找到最多元素的总和,并以列表的形式返回结果。

示例

k = 10
list1 = [10, 4, 11, 12, 14]
idx = [i for i, num in enumerate(list1) if num <= k]
print(idx)

输出

[0,1]

使用循环并将索引添加到新列表中

在下面的示例中,该程序使用for循环,在使用内置函数len()和range()迭代输入列表时,变量i进行迭代。接下来,使用if语句根据最多K个元素使用<运算符设置条件。然后使用append()方法通过变量i插入元素,并打印结果。

示例

k = 40
lst = [10, 20, 50, 60, 30, 80, 90]
idx = []
for i in range(len(lst)):
    if lst[i] < k:
        idx.append(i)
print(idx)

输出

[0, 1, 4]

使用Numpy和布尔索引

在下面的例子中,程序使用numpy库、k值和输入列表(lst)来计算最多K个元素的索引。内置函数array()将列表转换为一个数组元素,并将其存储在变量arr中。接下来,内置函数where()使用<运算符在arr和K之间设置条件,返回那些小于K值的元素,并将其存储在变量idx中。最后,我们通过变量idx打印结果。

示例

import numpy as np
k = 12
lst = [10, 4, 11, 12, 14]
arr = np.array(lst)
idx = np.where(arr < k)[0]
print(idx)

输出

[0 1 2]

使用enumerate()和filter()

在下面的示例中,该程序使用了一些内置函数,如list()、map()、lambda()和enumerate(),来查找列表中最多K个元素的索引。

示例

k = 8
lst = [10, 4, 11, 12, 14, 1, 2, 89, 0]
idx = list(map(lambda x: x[0], filter(lambda x: x[1] < k, enumerate(lst))))
print(idx)

输出

[1, 5, 6, 8]

结论

列表中的最多K个元素是那些将K的特定值设置为并返回小于等于K的元素。使用了各种内置函数,如filter()、lambda、append()等来解决这个问题。这种类型的程序通常用于算法问题求解。

本文链接:http://so.lmcjl.com/news/17369/

展开阅读全文