Python,用字符串中的字母替换数字

2024-09-30 06:22:35 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,将数字替换为字母表的正确方法是什么?在

示例:

"Hell0 my name 1s J0hn"->;"Hello my name is John"


Tags: 方法namegt示例helloismy数字
3条回答

首先,你需要精确地定义一个你认为与字符相似的数字映射,或者,如果你想很难做到这一点,开发一个学习算法来寻找相似之处,然后替换它们。计算机并不擅长理解抽象概念。在

一旦你有了地图,就很容易做到-

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的备注之后编辑):

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

注:他们可能是更有效的方式(没有for)

这需要^{}

>>> leettext = "Hell0 my name 1s J0hn"
>>> leettext.translate(str.maketrans({"0":"o", "1":"i"}))
'Hello my name is John'

请注意,这不会区分上下字符,因为leetspeak中没有该信息。在

在做一些小测试时,translate会随着字典的增长而更好地伸缩,因为您使用其他replace()解决方案迭代每个映射的整个字符串。在

相关问题 更多 >

    热门问题