如何在另一个列表中获取列表的索引,但是,我想通过在Python中使用“inside”列表中的元素来查找索引?例如,我有
[["dead"["brain.txt"],["alive",["grail.txt"]].
现在我想找到第二个列表的索引但是使用了活元素。所以,如果我有一个输入并且我写了活着,它应该给我索引1,其中存储了alive .p
答案 0 :(得分:1)
修复嵌套列表的语法后,可以使用next
,enumerate
和列表理解来获取索引:
>>> data = [["dead", ["brain.txt"]],["alive",["grail.txt"]]]
>>> next(i for i, v in enumerate(data) if 'alive' in v)
1
>>> next(i for i, v in enumerate(data) if 'dead' in v)
0
>>> next(i for i, v in enumerate(data) if 'nothere' in v)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
如果未找到索引,您可以定义默认值:
>>> next((i for i, v in enumerate(data) if 'nothere' in v), 'NotFound')
'NotFound'
答案 1 :(得分:0)
如何使用类?
lst = [["dead", ["brain.txt"]], ["alive", ["grail.txt"]]]
class MyList(object):
def __init__(self, lst):
self._lst = lst
def __getitem__(self, item):
for idx, values in enumerate(self._lst):
if item in values:
return idx
return KeyError()
print(MyList(lst)['alive'])