У меня есть список словарей, в самих документах я хочу сохранить только слова из группы 3 (для бывшего «готового производства автомобилей»)
и после фильтрации я хочу сохранить верхние 2 грамма, которые основаны на значениях, и если значения одинаковы, то два верхних ключа в диктонике.
b=[{'america': 0.10640008943905088,
'delete option snapshot': 0.18889748775492732,
'done': 0.10918437741476256,
'done auto manufacturing': 0.18889748775492732,
'done auto delete': 0.18889748775492732,
'overwhelmed': 0.1714953267142263,
'overwhelmed sub': 0.18889748775492732,
'overwhelmed sub value': 0.18889748775492732},
{'delete': 0.17737631178689198,
'delete invalid': 0.2918855502796403,
'delete invalid data': 0.2918855502796403,
'invalid': 0.19409701271823834,
'invalid data': 0.2918855502796403,
'invalid data sir': 0.2918855502796403,
'nas': 0.14949544719217545,
'nas server': 0.1632884084021329,
'nas server replic': 0.2799865687396422}]
выход:
b=[{'delete option snapshot': 0.18889748775492732,
'done auto manufacturing': 0.18889748775492732,
'done auto delete': 0.18889748775492732,
'overwhelmed sub value': 0.18889748775492732},
{'delete invalid data': 0.2918855502796403,
'invalid data sir': 0.2918855502796403}]
Мое решение: это кажется неправильным.
for i in range(1, len(b)+1):
for k,v in i.items():
if len(re.findall(r'\w+',k[i])<3:
del b[k]