按键值查找列表中字典的索引

时间:2013-12-03 07:57:37

标签: python python-2.7

如何在数据集中找到'node4'的索引?我希望node4成为我对这个特定功能的输入。

例如:

a = [
   {'node1':['node2','node3','node5']},  
   {'node2':['node1','node8','node10']},
   {'node3':['node4','node2']},
   {'node4':['node2','node1','node3']},
   {'node5':['DEADEND']},
   {'node6':['GOAL']}
    ....
    ]

4 个答案:

答案 0 :(得分:5)

使用nextenumerate

>>> next((i for i,x in enumerate(a) if 'node4' in x), None)
3

答案 1 :(得分:2)

def findIndex(inKey):
    for idx, item in enumerate(a):
        if inKey in item:
            return idx
    return None

答案 2 :(得分:1)

我会用索引构建一个字典:

>>> index = {key: i for i, elem in enumerate(a) for key in elem}
>>> index['node4']
3

这需要遍历整个列表一次以构建字典(这是一次性使用的最坏情况)但如果你不止一次需要它会更快。

答案 3 :(得分:1)

或者就是这样:

    [index for index, record in enumerate(a) if 'node4' in record.keys()][0]