Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find and replace strings in a python dictionary

I have a dictionary that looks like:

d = {'alleged': ['truths', 'fiels', 'fact', 'infidelity', 'incident'],
 'greased': ['axle', 'wheel', 'wheels', 'fields', 'enGine', 'pizza'],
 'plowed': ['fields', 'field', 'field', 'incident', '', '']}

I would like to go over it and replace some items for another strings. The strings to be find and the ones to replace them are also in a dictionary, in which the key is the string to be found and the value is the string to replace it:

d_find_and_replace = {'wheels':'wheel', 'Field': 'field', 'animals':'plants'}

I tried to use a function like:

def replace_all(dic1, dic2):
    for i, j in dic.items():
        dic3 = dic1.replace(i, j)
    return(dic3)

but it won't work because obviously, it uses replace built-in function replace inside it, and it is not possible to use it for dictionaries. Any suggestions on how to do this? Thank you very much for any help.

Edited to correct spelling mistakes.

like image 587
user2962024 Avatar asked Oct 03 '22 11:10

user2962024


1 Answers

Try just using direct assignation:

for key in d:
    li = d[key]
    for i,item in enumerate(li):
        li[i] = d_find_and_replace.get(item, item)
like image 124
roippi Avatar answered Oct 18 '22 06:10

roippi