索引具有单个已知但唯一值的多维列表

时间:2015-03-19 12:37:39

标签: python multidimensional-array

我有一个多维列表

multiDemList = [[1,'a'],[2,'b'],[3,'c']]

我希望通过将列表索引为3来找到列表元素[3,'c']的位置。

我在通配符上做过各种尝试

multiDemList.index([3,*])

通过期望的结果说明......但是不起作用。

3 个答案:

答案 0 :(得分:1)

以下列表推导将为您提供multiDemList中第一个元素为3的列表的所有索引列表:

[i for i, v in enumerate(multiDemList) if v[0] == 3]

如果您知道只有一个这样的元素,您可以像在Avinash Raj的解决方案中一样使用next()

next(i for i, v in enumerate(multiDemList) if v[0] == 3)

答案 1 :(得分:0)

您可以在函数中使用enumerate,如下所示:

>>> multiDemList = [[1,'a'],[2,'b'],[3,'c']]
>>> def return_indx(li):
...   for i,j in enumerate(li):
...      if j[0]==3:
...        return i
...   return None
... 
>>> return_indx(multiDemList)
2

或者:

>>> def return_indx(li,val):
...   try :
...      return next(i for i, j in enumerate(multiDemList) if j[0] == val)
...   except StopIteration :
...      return None
... 
>>> return_indx(multiDemList,3)
2
>>> return_indx(multiDemList,1)
0

答案 2 :(得分:0)

你可以这样做,

>>> multiDemList = [[1,'a'],[2,'b'],[3,'c']]
>>> next(multiDemList.index([i[0],i[1]]) for i in multiDemList if i[0]==3)
2