我在python中有一个字典列表(L1)和一个字典(D1):
L1 = [{'date': u'2017-06-14 18:46:40', 'value': u'148.01', 'id': u'8430'}, {'date': u'2017-06-14 18:46:40', 'value': u'133.03', 'id': u'681'}, {'date': u'2017-06-14 18:46:40', 'value': u'62.55', 'id': u'6151'}, {'date': u'2017-06-14 18:46:40', 'value': u'100.29', 'id': u'2089'}]
D1 = {u'7925': [u'538'], u'7927': [u'3819', u'7307'], u'8480': [u'1772', u'1772'], u'8481': [u'4384'], u'8482': [u'4725']}
如何将D1中的键与L1中的id进行比较 我需要访问D1中的列表
像:
for item in L1:
if item['id'] in D1:
print 'list: ', D1[item['id']
D1LST = D1[item['id']]
for d in D1LST:
Do something
我的打印声明显示空白
答案 0 :(得分:0)
也许这会有所帮助:
[y for x,y in D1.iteritems() for item in L1 if x in item['id']]
如果输入:
L1 = [{'date': u'2017-06-14 18:46:40', 'value': u'148.01', 'id': u'8430'}, {'date': u'2017-06-14 18:46:40', 'value': u'133.03', 'id': u'681'}, {'date': u'2017-06-14 18:46:40', 'value': u'62.55', 'id': u'6151'}, {'date': u'2017-06-14 18:46:40', 'value': u'100.29', 'id': u'2089'}]
D1 = {u'8430': [u'538'], u'7927': [u'3819', u'7307'], u'8480': [u'1772', u'1772'], u'8481': [u'4384'], u'8482': [u'4725']}
输出:
[[u'538']]
答案 1 :(得分:0)
从L1获取ID然后迭代D1以找到匹配
ids = [d['id'] for d in L1]
for k in D1.keys():
if(k in ids):
# Whatever happens when there is a match
答案 2 :(得分:0)
我认为这就是你要找的东西。迭代L1
的每个元素,如果元素id
是D1
中的键,则执行某些操作。
for element in L1:
key = element['id']
if key in D1:
# Do Other Computations
print D1[key]
之所以没有打印是因为id
中L1
中不存在D1
。
L1
中的ID列表:[u'8430', u'681', u'6151', u'2089']
D1
中的键列表:[u'8480', u'7927', u'8482', u'7925', u'8481']
如你所见,它们都不匹配。所以你的输出是空的是有意义的。