У меня есть 2 словаря с массивами. Я хочу, чтобы словарь из первичного списка использовался только в том случае, если во вторичном списке словаря «ведра» отображаются слова «buckets», а «метки» совпадают.
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]}