我正在尝试创建一个代码,使00 = a 01 = b等等,例如,str2numsp('我喜欢Python。')应该返回字符串 '3452110810045241241907141353'。
答案 0 :(得分:1)
他们必须从0
开始,还是只想使用任何数字?您可以使用每个字符的unicode值,如下所示:
ord(“a”) - > 97,ord(“b) - > 98 .. etc
然后你可以说
myString = "I like Python"
并使用列表理解
[ord(i) for i in myString]
哪个输出
[73, 32, 108, 105, 107, 101, 32, 80, 121, 116, 104, 111, 110]
然后将它们连接为字符串
"".join([str(ord(i)) for i in myString])
返回最终输出
'73321081051071013280121116104111110'
如果你希望'a'
从零开始,你总是可以从每个ord()
中减去97(这是'a'),但你必须小心特殊字符(空格,标点符号等) )。
答案 1 :(得分:0)
import string
chars = string.ascii_lowercase + string.ascii_uppercase + " ."
encode = {ch:"{:02d}".format(i) for i,ch in enumerate(chars)}
def str2numsp(s):
return "".join(encode[ch] for ch in s)
就像
一样>>> str2numsp("I like Python.")
'3452110810045241241907141353'