Reputation:
I'm trying to do something like this:
My input:
predefined_list=['gross pay']
predefined_dict={'a':'o','o':'a','g':'c','c':'g'}
Desired
output: ['gross pay', 'gross poy', 'grass pay', 'crass pay', cross pay, crass poy]
and other several combinations.
i tried:
predefined_list=['gross pay']
predefined_dict={'a':'o','o':'a','g':'c','c':'g'}
i=0;
for key,value in predefined_dict.items():
final=predefined_list[i].replace(key,value)
i+=1
if final not in predefined_list:
predefined_list.append(final)
print(predefined_list)
Upvotes: 0
Views: 73
Reputation: 566
Try this way
for key, value in predefined_dict.items():
for word in predefined_list:
for n in range(word.count(key)):
final = word.replace(key,value,n+1)
if final not in predefined_list:
predefined_list.append(final)
Output:
>>> predefined_list
['gross pay', 'gross poy', 'grass pay', 'grass poy', 'cross pay', 'cross poy', 'crass pay', 'crass poy']
Upvotes: 0
Reputation: 3634
Just replace your string by iterating through your dictionary's keys and values
modified_list = [predefined_list[0].replace(k,v) for k,v in predefined_dict.items()]
Output
['gross poy', 'grass pay', 'cross pay', 'gross pay']
Similarly
predefined_list = ['pay gross', 'gross pay']
modified_dict = {list_k: [list_k.replace(k,v) for k,v in predefined_dict.items()]
for list_k in predefined_list}
Output
{'gross pay': ['gross poy', 'grass pay', 'cross pay', 'gross pay'],
'pay gross': ['poy gross', 'pay grass', 'pay cross', 'pay gross']}
Upvotes: 1