from collections import OrderedDict, defaultdict
d = [OrderedDict([
('id', '1'),
('date', '20170101')]),
OrderedDict([
('id', '2'),
('date', '20170102')]),
OrderedDict([
('id', '4'),
('date', '20170102')]) ]
dd = defaultdict(int, {'1': 14, '2': 5, '3': 7})
id1 = set([ di['id'] for di in d])
id2 = set( dd.keys() )
final_keys = id1 & id2
to_be_del = []
for di in d:
id = di['id']
if id not in final_keys:
to_be_del.append(di)
continue
q = dd[id]
di['quantity'] = q
for di in to_be_del:
d.remove(di)
print(d)
ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QsIGRlZmF1bHRkaWN0CgoKZCA9IFtPcmRlcmVkRGljdChbCiAgICAgICAgICAoJ2lkJywgJzEnKSwKICAgICAgICAgICgnZGF0ZScsICcyMDE3MDEwMScpXSksCk9yZGVyZWREaWN0KFsKICAgICAgICAgICgnaWQnLCAnMicpLAogICAgICAgICAgKCdkYXRlJywgJzIwMTcwMTAyJyldKSwKT3JkZXJlZERpY3QoWwogICAgICAgICAgKCdpZCcsICc0JyksCiAgICAgICAgICAoJ2RhdGUnLCAnMjAxNzAxMDInKV0pIF0KICAgICAgICAgIApkZCA9IGRlZmF1bHRkaWN0KGludCwgeycxJzogMTQsICcyJzogNSwgJzMnOiA3fSkKaWQxID0gc2V0KFsgZGlbJ2lkJ10gZm9yIGRpIGluIGRdKQppZDIgPSBzZXQoIGRkLmtleXMoKSApCmZpbmFsX2tleXMgPSBpZDEgJiBpZDIKdG9fYmVfZGVsID0gW10KZm9yIGRpIGluIGQ6CglpZCA9IGRpWydpZCddCglpZiBpZCBub3QgaW4gZmluYWxfa2V5czoKCQl0b19iZV9kZWwuYXBwZW5kKGRpKQoJCWNvbnRpbnVlCglxID0gZGRbaWRdCglkaVsncXVhbnRpdHknXSA9IHEKZm9yIGRpIGluIHRvX2JlX2RlbDoKCWQucmVtb3ZlKGRpKQoKCQpwcmludChkKQoJCgk=
[OrderedDict([('id', '1'), ('date', '20170101'), ('quantity', 14)]), OrderedDict([('id', '2'), ('date', '20170102'), ('quantity', 5)])]