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

2024-09-30 19:23:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个多维列表

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

我想通过索引3的列表来找到list元素[3,'c']的位置。你知道吗

我尝试过各种通配符

multiDemList.index([3,*])

这说明了期望的结果…但不起作用。你知道吗


Tags: 元素列表indexlist通配符multidemlist
3条回答

下面的列表理解将为您提供multiDemList中列表的所有索引的列表,其第一个元素是3

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

如果您知道只有一个这样的元素,那么可以使用next(),如Avinash Raj的解决方案所示:

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

你可以这样做

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

可以在函数中使用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

相关问题 更多 >