Python如何找到多值列表的索引?

2021-10-17 17:59:24 发布

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

我在任何地方都看不到答案,但我知道这是个愚蠢的问题,所以提前道歉!!你知道吗

我有这样一个清单:

fullList = [("a","/a/"),("b","/b/"),("c","/c/"),("d","/d/"),("e","/e/")]

如果我有这个值,假设是c,那么如何得到数组的索引?你知道吗

如果我使用索引方法,它将不起作用:

listIndex = fullList.index('c')

有什么想法吗?你知道吗

干杯,抱歉如果一个愚蠢的问题。。。你知道吗

3条回答
网友
1楼 ·

列表的index()查找列表元素的相等性,因此您希望提供与您要查找的相等的项。具体来说,在这种情况下,应该是:

listIndex = fullList.index(('c', '/c/'))

如果您真的需要按元组的第一个元素进行搜索,您可以只获取每个项的第一个元素并对其进行索引:

listIndex = [ e[0] for e in fullList ].index('c')
网友
2楼 ·

您需要索引还是完整值?在第二种情况下:

>>> found = dict(fullList).get('c')
>>> print found
("c", "/c/")
网友
3楼 ·

您只需要理解列表并使用in操作:

>>> [fullList.index(i) for i in fullList if 'c' in i]
[2]

如果您只想检查第一个索引,可以使用:

>>> [fullList.index(i) for i in fullList if i[0]=='c']
[2]

还要注意的是,您可以在列表理解中使用^{}函数,在这里性能更好,index()的顺序是O(n),您可以拒绝额外的搜索!你知道吗

>>> [i for i,j in enumerate(fullList) if j[0]=='c']
[2]

>>> [i for i,j in enumerate(fullList) if 'c' in j]
[2]

相关问题