[Python] Delete keys from dictionary based on condition in python

Discussão em 'Python' iniciado por Stack, Abril 8, 2025.

  1. Stack

    Stack Membro Participativo

    I have a list of dictionaries, in very documents I want to keep only words which are in group of 3( for ex 'done auto manufacturing') and after filtering I wan to keep top 2 grams which based on values and if values are same then top two keys in the dictonary.

    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}]


    output:

    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}]


    My solution: This doesn't seem right.

    for i in range(1, len(b)+1):
    for k,v in i.items():
    if len(re.findall(r'\w+',k)<3:
    del b[k]

    Continue reading...

Compartilhe esta Página