我对python很新,所以请原谅我,如果我错过了一个明显的内置函数。
我有一个我生成的字典映射,如下所示:
dictionary = dict(zip(restAlphaSet,list(item)))
其中restAlpha设置一个字符串,list(item)是列表转换的迭代
我试图用它来替换我的字符串中的所有字符。我在网上找到了一个replaceAll函数,如下所示:
def replace_all(text, dic):
for i, j in dic.iteritems():
if i != j:
text = text.replace(i, j)
return text
不幸的是,这是有缺陷的,好像映射有a-> b,b-> a,然后什么都不会改变,因为b会被改变回a。
我找到了translate函数,但它不接受字典输入。
答案 0 :(得分:5)
翻译速度更快。
>>> import string
>>> text.translate(string.maketrans("".join(restAlphaSet),"".join(item)))
答案 1 :(得分:3)
答案 2 :(得分:-1)
我意识到这是一个老问题,但似乎没有使用带有a->b
和b->a
映射的字典的答案。
我需要一个类似的功能,并且完成工作的技巧是首先遍历我们需要替换的字符串,然后为每个char寻找映射。
def replace_all(text, dic):
new_text = ""
for char in text:
for i, j in dic.iteritems():
if char == i:
new_text += j
return new_text