Python数组:按元素值获取索引

时间:2015-02-12 09:30:01

标签: python arrays python-2.7

A有这样的数组

{  
    "records":[  
        {  
            "domain":"example.com",
            "fqdn":"111",
        },
        {  
            "domain":"example.com",
            "fqdn":"2222",
        },
        {  
            "domain":"example.com",
            "fqdn":"333",
        },
    ],
}

如何使用fqdn ==“333”获取元素索引?

3 个答案:

答案 0 :(得分:3)

您可以将列表理解与enumerate

一起使用
[x for x, y in enumerate(data['records']) if y['fqdn'] == '333'][0]

但是,对于不存在的情况,你必须抓住IndexError

根据评论中的建议,您可以通过使用生成器和IndexError来避免重复目标值的冗余查找和捕获next的问题:

next((x for x, y in enumerate(data['records']) if y['fqdn'] == '333'), None)

答案 1 :(得分:1)

好像你想要这样的东西,

>>> d = {  
    "records":[  
        {  
            "domain":"example.com",
            "fqdn":"111",
        },
        {  
            "domain":"example.com",
            "fqdn":"2222",
        },
        {  
            "domain":"example.com",
            "fqdn":"333",
        },
    ],
}
>>> for i in d.values():
        for s,m in enumerate(i):
            if m['fqdn'] == "333":
                print(s)


2

答案 2 :(得分:0)

li = list(di['records'])
for x in li:
    for k, v in x.items():
        if v == '333':
            print k, v