2024-09-30 06:22:35 发布
网友
在Python中,将数字替换为字母表的正确方法是什么?在
示例:
"Hell0 my name 1s J0hn"->;"Hello my name is John"
"Hell0 my name 1s J0hn"
"Hello my name is John"
首先,你需要精确地定义一个你认为与字符相似的数字映射,或者,如果你想很难做到这一点,开发一个学习算法来寻找相似之处,然后替换它们。计算机并不擅长理解抽象概念。在
一旦你有了地图,就很容易做到-
input_string = "Hell0 my name 1s J0hn" mapping = {'0': 'o'} #... for key, value in mapping.items(): input_string = input_string.replace(key, value)
您应该使用replace,例如(在@Dmitry的备注之后编辑):
replace
s = "Hell0 my name 1s J0hn" r = [[0,'o'], [1, 'i']] for e in r: s = s.replace(str(e[0]),str(e[1])) print s
输出:Hello my name is John
Hello my name is John
注:他们可能是更有效的方式(没有for)
这需要^{}:
>>> leettext = "Hell0 my name 1s J0hn" >>> leettext.translate(str.maketrans({"0":"o", "1":"i"})) 'Hello my name is John'
请注意,这不会区分上下字符,因为leetspeak中没有该信息。在
在做一些小测试时,translate会随着字典的增长而更好地伸缩,因为您使用其他replace()解决方案迭代每个映射的整个字符串。在
translate
replace()
首先,你需要精确地定义一个你认为与字符相似的数字映射,或者,如果你想很难做到这一点,开发一个学习算法来寻找相似之处,然后替换它们。计算机并不擅长理解抽象概念。在
一旦你有了地图,就很容易做到-
您应该使用
replace
,例如(在@Dmitry的备注之后编辑):输出:
Hello my name is John
注:他们可能是更有效的方式(没有for)
这需要^{} :
请注意,这不会区分上下字符,因为leetspeak中没有该信息。在
在做一些小测试时,
translate
会随着字典的增长而更好地伸缩,因为您使用其他replace()
解决方案迭代每个映射的整个字符串。在相关问题 更多 >
编程相关推荐