簡體   English   中英

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

[英]Find the index of a list element in Python

我怎么能找到某個索引來確定其中一個元素在集合中的位置。 所以我想找到(2.0, 2.0, 152)sets列表中的位置,這是第 5 個索引。 有沒有我可以用來實現的 function ?

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)的情況。

您可以通過兩種方法 go 從 Python 中的數組中查找元素的索引。

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

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

您可以在此處看到它將打印一個,因為這是417list數組中所在的索引。 但是,請記住,如果指定的值不存在,您可能會收到錯誤消息。

第二種更難的方法是自己遍歷數組。 舉個例子:

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')

如果你要使用更好的字典索引,它可以在 O(1) 時間內檢索你的索引。雖然構造可能需要 O(n) 時間

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM