我有一個字典搜索串列,我需要檢查它是否存在于另一個源字典中。
source_dict = { 'a':'1', 'blue':'yes', 'c':'3' }
search_list = [ {'a':'1', 'b':'2'}, {'blue': 'yes'} ]
串列中的專案都需要檢查,但是,我們需要對同一字典中的所有專案進行 AND。或串列中的字典之間。
我將如何開始解決這個問題?
uj5u.com熱心網友回復:
您可以使用any和all:
>>> # the `OR` (`any`) of the `AND`s (`all`s) for each dict
>>> any(all(k in source_dict and source_dict[k] == v for k, v in d.items()) for d in search_list)
True
>>> # the `AND`s (`all`s) for each dict
>>> [all(k in source_dict and source_dict[k] == v for k, v in d.items()) for d in search_list]
[False, True]
uj5u.com熱心網友回復:
from functools import reduce
reduce(lambda a,b: all(a) or all(b),
map(lambda x: map(lambda k: source_dict[k] == x[k] if k in source_dict else False, x.keys()),
search_list))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/451056.html
標籤:python-3.x 列表 字典 搜索
