【发布时间】:2019-03-16 01:01:41
【问题描述】:
我有 2 个带数组的字典。仅当“buckets”出现在字典“buckets”的辅助列表中而“labels”匹配时,我才需要主列表中的字典。
primary = [{'buckets': [165, 27],
'label': 'Andrew'}, {'buckets': [1364],
'label': 'Matt'},{'buckets':[500, 60, 888], 'label':'John'}]
secondary = [{'buckets': [165, 1447],
'label': 'Andrew'}, {'buckets': [1365, 15, 16],
'label': 'Matt'}, {'buckets':[12,10,15], 'label':'Max'}]
data = {}
for x in primary:
found = False
for i in secondary:
for num in x['buckets']:
if x['label'] == i['label']:
if num in i['buckets']:
found =True
break
if found:
data[x['label']] = x['buckets']
else:
data[i['label']] = i['buckets']
pprint.pprint(data)
如果我改变数组中的匹配项/数字,我不会得到正确的结果。任何帮助将不胜感激。
Desired output:
{'Andrew': [165, 27], 'Matt': [1365, 15, 16]}
这种情况有时会发生,但如果我在中学更改安德鲁斯号码,它可能会以这种方式结束。
{'Matt': [1365, 15, 16]}
【问题讨论】:
-
目标是如果主字典出现则返回主列表字典,如果没有返回辅助字典则返回辅助列表字典。......这个声明非常混乱和不清楚......“出现在”哪里?
-
@Bazingaa 我编辑了声明。当标签匹配时,我想检查来自主要的存储桶是否在次要。如果是,则返回主字典,如果否,则返回辅助字典。
-
在此类问题中,对于想要回答的人来说,获得所需的样本输出通常会有所帮助。在您的情况下,所需的输出如何?你能把它包括在问题中吗?
-
@Bazingaa 谢谢你的好点我添加了所需的输出和问题输出。
-
所需的解决方案应该是
{'Andrew': [165, 1447], 'Matt': [1365, 15, 16]}。您想要二级词典中的列表,对吧?
标签: python arrays list dictionary