gpt4 book ai didi

python - 如何判断何时有多个索引匹配?

转载 作者:行者123 更新时间:2023-11-28 21:16:45 26 4
gpt4 key购买 nike

我有任何一组值,它们通常是相同的,我试图找到最小值的索引。但我想知道所有相同的对象。

例如,我有数组 a = [1, 2, 3, 4] 并找到最小数组的索引,我使用 a.index(min(a) ) 并返回 0。但是如果我有一个 a = [1, 1, 1, 1] 的数组,使用相同的东西仍然会返回 0。

我想知道多个索引匹配我正在搜索的内容以及这些索引是什么。我该怎么做呢?

最佳答案

list.index(value) 返回 listfirst value 出现的索引。

一个更好的主意是使用简单的列表理解和 enumerate :

indices = [i for i, x in enumerate(iterable) if x == v]

其中 v 是您要搜索的值,iterable 是支持迭代器协议(protocol)的对象,例如它可以是生成器或序列(如 list)。

对于您的特定用例,它看起来像

def smallest(seq):
m = min(seq)
return [i for i, x in enumerate(seq) if x == m]

一些例子:

In [23]: smallest([1, 2, 3, 4])
Out[23]: [0]

In [24]: smallest([1, 1, 1, 1])
Out[24]: [0, 1, 2, 3]

如果您不确定 seq 是否为空,您可以将 default=-1 (或其他一些值)参数传递给 min 函数(在 Python 3.4+ 中):

m = min(seq, default=-1)

在使用较旧的 Python 时,考虑使用 m = min(seq or (-1,))(同样,任何值)。

关于python - 如何判断何时有多个索引匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28330522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com