Python从列表

时间:2017-09-04 11:29:47

标签: python dictionary

我们说我有以下词典列表:

[
        {
                "id": 1,
                "name": "string 1"
        },
        {
                "id": 2,
                "name": "string 2"
        },
        {
                "id": 3,
                "name": "string 3"
        },
        {
                "id": 4,
                "name": "string 4"
        }
]

有没有办法可以根据"id" {"id": 4, "name": "string 4"}检索第一个字典"name"的{​​{1}}?

3 个答案:

答案 0 :(得分:4)

这应该可行,它遍历字典列表以查找名称与目标相等并打印出其id的字典

for dictionary in list:
    if dictionary["name"] == target:
        print (dictionary["id"])

答案 1 :(得分:1)

简单的列表理解可以解决这个问题:

a=[
        {
                "id": 1,
                "name": "string 1"
        },
        {
                "id": 2,
                "name": "string 2"
        },
        {
                "id": 3,
                "name": "string 3"
        },
        {
                "id": 4,
                "name": "string 4"
        }
]
result = [ x for x in a if x["name"] == "string 1" ]

如果您只想要与搜索字符串匹配的ID列表,则可以使用result = [ x["id"] for x in a if x["name"] == "string 1" ]

答案 2 :(得分:0)

您的问题的一行代码。

output = [ value["id"] for value in a if value["name"] == "string 1" ]

这将返回名称中等于字符串1的所有id的列表。