How to replace multiple occurrences in a dictionary containing keys and each key maps to a list of strings in Python

3 Answers

0 votes
mydict = dict(
    one = ['aaa', 'bbb', 'cccc', 'aaa', 'ddddd', 'eeeeee', 'aaa'], 
    two = ['fff', 'aaa', 'hhh'], 
    three = ['iiii', 'aaa', 'jjjj'])

print(mydict)

print()  
for lst in mydict.values():
    for i, s in enumerate(lst):
        if s == 'aaa':
            lst[i] = '*'

print(mydict)


'''
run:

{'one': ['aaa', 'bbb', 'cccc', 'aaa', 'ddddd', 'eeeeee', 'aaa'], 'two': ['fff', 'aaa', 'hhh'], 'three': ['iiii', 'aaa', 'jjjj']}

{'one': ['*', 'bbb', 'cccc', '*', 'ddddd', 'eeeeee', '*'], 'two': ['fff', '*', 'hhh'], 'three': ['iiii', '*', 'jjjj']}

'''

 



answered Mar 24 by avibootz
0 votes
mydict = dict(
    one = ['aaa', 'bbb', 'cccc', 'aaa', 'ddddd', 'eeeeee', 'aaa'], 
    two = ['fff', 'aaa', 'hhh'], 
    three = ['iiii', 'aaa', 'jjjj'])

print(mydict)

replacements = {'aaa' : '*'}

for v in mydict.values():
    v[:] = [replacements.get(x, x) for x in v]

print(mydict)


'''
run:

{'one': ['aaa', 'bbb', 'cccc', 'aaa', 'ddddd', 'eeeeee', 'aaa'], 'two': ['fff', 'aaa', 'hhh'], 'three': ['iiii', 'aaa', 'jjjj']}
{'one': ['*', 'bbb', 'cccc', '*', 'ddddd', 'eeeeee', '*'], 'two': ['fff', '*', 'hhh'], 'three': ['iiii', '*', 'jjjj']}

'''

 



answered Mar 24 by avibootz
0 votes
mydict = dict(
    one = ['aaa', 'bbb', 'cccc', 'aaa', 'ddddd', 'eeeeee', 'aaa'], 
    two = ['fff', 'aaa', 'hhh'], 
    three = ['iiii', 'aaa', 'jjjj'])

print(mydict)

for key, val in mydict.items():
    mydict[key] = ["*" if x == "aaa" else x for x in val]

print(mydict)


'''
run:

{'one': ['aaa', 'bbb', 'cccc', 'aaa', 'ddddd', 'eeeeee', 'aaa'], 'two': ['fff', 'aaa', 'hhh'], 'three': ['iiii', 'aaa', 'jjjj']}
{'one': ['*', 'bbb', 'cccc', '*', 'ddddd', 'eeeeee', '*'], 'two': ['fff', '*', 'hhh'], 'three': ['iiii', '*', 'jjjj']}

'''

 



answered Mar 24 by avibootz
...