Как заменить символы в элементе списка в качестве ключей со значениями в словаре - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь сделать что-то вроде этого:

Мой ввод :

predefined_list=['gross pay']
predefined_dict={'a':'o','o':'a','g':'c','c':'g'}

Желаемый

output: ['gross pay', 'gross poy', 'grass pay', 'crass pay', cross pay, crass poy] 

и несколько других комбинаций.

Я пытался:

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)

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Попробуйте вот так

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)

Выход:

>>> predefined_list

['gross pay', 'gross poy', 'grass pay', 'grass poy', 'cross pay', 'cross poy', 'crass pay', 'crass poy']
0 голосов
/ 30 октября 2018

Просто замените строку, просматривая ключи и значения словаря

modified_list = [predefined_list[0].replace(k,v) for k,v in predefined_dict.items()]

выход

['gross poy', 'grass pay', 'cross pay', 'gross pay']

Аналогично

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}

Выход

{'gross pay': ['gross poy', 'grass pay', 'cross pay', 'gross pay'],
 'pay gross': ['poy gross', 'pay grass', 'pay cross', 'pay gross']}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...