我有一个多维列表
multiDemList = [[1,'a'],[2,'b'],[3,'c']]
我希望通过将列表索引为3来找到列表元素[3,'c']
的位置。
我在通配符上做过各种尝试
multiDemList.index([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