如何在Python中批量替换列表中的多个字符串?
解决列表多字符串批量替换的问题
嘿,我懂你现在的麻烦啦!你想把数字组成的列表按对应顺序替换成目标单词,用多次replace的方式不仅繁琐,还容易出错对吧?其实咱们可以用字典映射的方法,一次就搞定所有替换,清晰又高效。
最优解决方案:字典映射 + 列表推导式
首先,我们把数字和对应的目标单词做成一个映射字典,然后通过一次列表推导式完成全部替换:
sentence = ['1', '2', '3', '4'] # 创建数字到单词的映射字典 word_mapping = { '1': 'i', '2': 'put', '3': 'this', '4': 'here' } # 一次遍历完成替换 new_sentence = [word_mapping[item] for item in sentence] print(new_sentence) # 输出: ['i', 'put', 'this', 'here']
为什么不推荐多次replace?
你之前尝试重复四次列表推导式的方法,比如:
newsentence = [n.replace('1', 'i') for n in sentence] newsentence = [n.replace('2', 'put') for n in newsentence] # ... 重复两次
这种方法有两个明显的问题:
- 效率低:每次
replace都要完整遍历一遍列表,四次就是四次遍历,而字典映射只需要一次遍历。 - 扩展性差:如果以后要增加更多替换规则,你得继续添加新的推导式,维护起来很麻烦;而字典只需要新增键值对就行。
额外小提示
如果你的原列表里的数字是整数类型(比如[1,2,3,4]),只需要把字典的键改成整数就可以了:
word_mapping = {1: 'i', 2: 'put', 3: 'this', 4: 'here'}
内容的提问来源于stack exchange,提问作者Tazza
相关产品推荐
相关产品推荐

