Python list of dictionaries search

后端 未结 21 2428
-上瘾入骨i
-上瘾入骨i 2020-11-22 09:41

Assume I have this:

[
{\"name\": \"Tom\", \"age\": 10},
{\"name\": \"Mark\", \"age\": 5},
{\"name\": \"Pam\", \"age\": 7}
]

and by searchin

21条回答
  •  北恋
    北恋 (楼主)
    2020-11-22 10:09

    def dsearch(lod, **kw):
        return filter(lambda i: all((i[k] == v for (k, v) in kw.items())), lod)
    
    lod=[{'a':33, 'b':'test2', 'c':'a.ing333'},
         {'a':22, 'b':'ihaha', 'c':'fbgval'},
         {'a':33, 'b':'TEst1', 'c':'s.ing123'},
         {'a':22, 'b':'ihaha', 'c':'dfdvbfjkv'}]
    
    
    
    list(dsearch(lod, a=22))
    
    [{'a': 22, 'b': 'ihaha', 'c': 'fbgval'},
     {'a': 22, 'b': 'ihaha', 'c': 'dfdvbfjkv'}]
    
    
    
    list(dsearch(lod, a=22, b='ihaha'))
    
    [{'a': 22, 'b': 'ihaha', 'c': 'fbgval'},
     {'a': 22, 'b': 'ihaha', 'c': 'dfdvbfjkv'}]
    
    
    list(dsearch(lod, a=22, c='fbgval'))
    
    [{'a': 22, 'b': 'ihaha', 'c': 'fbgval'}]
    

提交回复
热议问题