如何找到一个特定的索引,以确定其中一个元素在集合中的位置。所以我想找到(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,1) for x in range(4,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, 2.0, 152)
似乎就是这种情况。
在Python中,有两种方法可以从数组中查找元素的索引。
第一种也是最直接的方法是使用任何列表的.index()
方法,该方法返回指定值所在的索引。举个例子:
list = [123, 417, 098]
print(list.index(417))
您可以在这里看到它将打印一个,因为这是417
在list
数组中的索引。不过,请记住,如果指定的值不存在,则可能会出现错误。
第二种也是更困难的方法是自己迭代数组。举个例子:
list = [123, 417, 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')
如果你想使用更多更好的保持dict索引,它可以在O(1(时间内检索你的索引。通过施工可能需要O(n(时间