我有一个包含多个小词典的列表,如下所示:
_history = [{ "field" : "field01", "mode" : "write"},
{ "field" : "field02", "mode" : "write"},
{ "field" : "field03", "mode" : "write"},
{ "field" : "field01", "mode" : "clear"}]
我感兴趣的是处理词典列表并确定同一字段值是否显示多次(在这种情况下为“ field01”)的最佳方法,如果是,我想验证一下模式是否相同。在上面的示例中,我在field01上发生冲突,我想提出一个例外情况
答案 0 :(得分:2)
您可以执行以下操作:
from itertools import groupby
from operator import itemgetter
def validate(hist)
key = itemgetter('field')
for k, g in groupby(sorted(hist, key=key), key=key):
s = set(d['mode'] for d in g)
if len(s) > 1:
raise ValueError(k)
>>> validate(_history)
Traceback ...
ValueError: field01