【问题标题】:Find the index of a list element in Python在 Python 中查找列表元素的索引
【发布时间】:2021-06-25 04:41:28
【问题描述】:

我怎样才能找到某个索引来说明其中一个元素在集合中的位置。所以我想找到(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)

【问题讨论】:

  • number = [round(x *0.5,5) for i in range(100, )] 抛出错误,检查是否有效,我认为应该是for x in..
  • my_list.index(some_element)?

标签: python list for-loop indexing itertools


【解决方案1】:

您可以为此使用index-方法:

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

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

【讨论】:

    【解决方案2】:

    有两种方法可以在 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))
    

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

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

    【讨论】:

      【解决方案3】:
      try:
          print(sets.index(element))
      except:
          print('not found')
      

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

      【讨论】:

        猜你喜欢
        • 2020-12-05
        • 2021-07-16
        • 2023-03-24
        • 2016-02-29
        • 2019-11-11
        • 2013-07-26
        • 2011-05-05
        • 2010-12-02
        • 1970-01-01
        相关资源
        最近更新 更多