为了账号安全,请及时绑定邮箱和手机立即绑定

如何用字典中的值替换列表项中的字符作为键

如何用字典中的值替换列表项中的字符作为键

回首忆惘然 2021-07-26 18:04:25
我正在尝试做这样的事情:我的输入: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 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

试试这个方法


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



查看完整回答
反对 回复 2021-08-03
?
翻阅古今

TA贡献1780条经验 获得超5个赞

只需通过遍历字典的键和值来替换字符串


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


查看完整回答
反对 回复 2021-08-03
  • 2 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信