在 Python 中查找列表元素的索引

问题描述

我怎样才能找到某个元素在集合中的位置的某个索引。所以我想找到 (2.0,2.0,152)sets 列表中的位置,这是第 5 个索引。有没有我可以使用的函数来实现它?

from itertools import groupby
from itertools import accumulate
import itertools

#Configs
Lower = [round(x * 0.5,1) for x in range(4,23)]   #ideal = (4,13) Lower and upper boundary values 
Upper = [round(x * 0.5,23)] # ideal between (10-23)
number = [round(x *0.5,5) for i in range(100,)]    #used for calculations with stand deriv and linear reg
list_set = [Lower,Upper,number]
sets = []
for element in itertools.product(*list_set):
    print(element)
    sets.append(element)

解决方法

您可以使用 index 方法:

sets.index((2.0,2.0,152))

如果提供的值不在列表中,则该方法会引发 ValueError(2.0,152) 似乎就是这种情况。

,

有两种方法可以在 Python 中从数组中查找元素的索引。

第一个也是最直接的方法是使用任何列表的 .index() 方法,该方法返回指定值所在的索引。举个例子:

list = [123,417,098]
print(list.index(417))

您可以在这里看到它会打印一个,因为这是 417list 数组中所在的索引。不过,请记住,如果指定的值不存在,您可能会收到错误消息。

第二种更难的方法是自己遍历数组。举个例子:

list = [123,098]

def findElement(array,element):
    for index in range(len(array)):
        if (array[index] == element):
            return index

print(findElement(list,417))

我们在这里所做的是定义一个方法,该方法将数组和元素作为参数,然后遍历列表的每个索引,直到该索引处的值是指定的元素。当值匹配时,它将返回所述索引。如果没有值匹配,则不会返回任何内容。

第二种方法的优点是,如果列表中没有这样的元素,它不会抛出错误,但是设置起来也有点困难。

,
try:
    print(sets.index(element))
except:
    print('not found')

如果你要使用更好的保留在字典中的索引,它可以在 O(1) 时间内检索你的索引。虽然构造可能需要 O(n) 时间

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...