【发布时间】:2012-04-26 16:43:46
【问题描述】:
我对 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。
我找到了翻译功能,但它不接受字典输入。
【问题讨论】:
-
删除
b -> a映射怎么样? -
您的示例函数中存在语法错误。
If i!=j末尾需要冒号,否则会产生 SyntaxError。 -
首先它将失败,
IndentationError:) -
它与密码非常相似。所以字母可以映射到任何其他字母(没有重复),我只需要一个与订单无关的函数。而且你我抄错了,我会加冒号
-
translate确实接受 dicts 如果应用于 unicode 对象(请参阅docs.python.org/library/stdtypes.html#str.translate)
标签: python string dictionary replace